FLASK上傳時有中文文件名的解決方案

場景是在nginx+uwsgi+flask時上傳文件名爲中文時nginx報502錯,設置各各地方爲utf8後無果,最後妥協了. 解決方案一:拼接+安全檢查nginx

def rsafename(s):
            """Ensure user submited string not contains '/' or muti '-'.

            Args:
                s: submited string

            Returns:
                replaced slash string
            """
            s = re.sub('[" "\/\--.]+', '-', s)
            s = re.sub(r':-', ':', s)
            s = re.sub(r'^-|-$', '', s)

            return s

解決方案2: 轉成拼音 pip install pypinyinflask

from pypinyin import pinyin, lazy_pinyin

filesname = "".join(lazy_pinyin(files.filename))
相關文章
相關標籤/搜索