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))
相关文章
相关标签/搜索