解决方法
1.查找request包下的fields.py位置
from distutils.sysconfig import get_python_lib
print(get_python_lib())
2.定位到45-46行,找到这两句,注释掉
value = email.utils.encode_rfc2231(value, 'utf-8')
value = '%s*=%s' % (name, value)
3.在后面新加一句,完成!
value = '%s="%s"' % (name, value)
推送信息展示:
检查修改fields.py代码的结果,出现的问题定位:
修改之前,post的内容:
请求参数:
--f78bbb3088884a139---------------
Content-Disposition: form-data; name="file"; filename*=utf-8''%E6%B5%8B%E8%AF%95.docx
--f78bbb3088884a139---------------
修改之后,post的内容
请求参数:
--13135c8c88888888888888888888888
Content-Disposition: form-data; name="file"; filename="测试.docx"
--13135c8c88888888888888888888888
可以看到中文名被识别出来了。
参考链接:参考原版解答
留个坑:可以支持doc文件,但docx类型文件发送失败。