添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

flask上传文件不能带中文

Flask上传文件时,如果文件名中带有中文字符,可能会出现编码问题。这是因为中文字符在计算机中被编码为多个字节,而上传文件时默认使用的编码是 ASCII 码,不支持中文字符。

要解决这个问题,可以将文件名编码为 URL 编码,即使用%XX代替中文字符的字节码。在Flask中,可以使用urllib.parse.quote()函数将文件名转换为URL编码。示例代码如下:

from flask import Flask, request
import os
import urllib.parse
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
    file = request.files['file']
    filename = file.filename
    filename = urllib.parse.quote(filename)
    file.save(os.path.join('/path/to/save', filename))
    return 'Upload success'
if __name__ == '__main__':
    app.run()

以上代码中,urllib.parse.quote()函数将文件名转换为 URL 编码,file.save()方法保存文件到指定目录下。需要注意的是,保存文件时的文件名也应该使用 URL 编码。

希望这个解答能够帮到您。

  •