python - Python 多部分文件上传与海报 - 设置正在发送的文件的名称
问题描述
我尝试使用以下代码(已汇总)上传文件。
在服务器端,当我检查接收到的文件的名称时,我看到它被设置为 file_path 参数。
目前,海报库采用我输入的file_path参数(例如:file_path=~/user/data.csv),并在文件分段上传期间将其作为文件名发送。
我正在寻找一种方法来更改正在发送的文件名(因为服务器需要一个不带 / 字符的文件名)
提前致谢。
PS 我已经尝试将“名称”键添加到值中,但没有帮助。
values = {'file': open(file_path, 'rb')}
poster.streaminghttp.register_openers()
datagen, headers = poster.encode.multipart_encode(values)
# Create the Request object
request = urllib2.Request(address, datagen, headers)
解决方案
我已经设法使用以下代码解决了这个问题:
f = open(file_path, "rb")
mp = MultipartParam("file", fileobj=f, filename="file.csv")
values = {"file": mp,
constants.AUTHORIZATION_HEADER_KEY: constants.AUTHORIZATION_HEADER_VALUE % self._token,
constants.CACHE_CONTROL_HEADER_KEY: constants.CACHE_CONTROL_NEGATIVE_VALUE
}
poster.streaminghttp.register_openers()
datagen, headers = poster.encode.multipart_encode(values)
# Create the Request object
request = urllib2.Request(address, datagen, headers)
推荐阅读
- python - 试图访问谷歌电子表格,但没有名为“谷歌”的模块
- php - PHP 不显示错误(打开)并且代码在某个时候死掉了
- mysql - MySQL 将状态更改日期转换为状态持续时间
- python - 防止 Python 安装在 dist-packages 中查找包
- amazon-web-services - 请求具有任何值的密钥的 IAM 策略条件
- node.js - Mongoose:如何找到数组中最常见项目的模型
- javascript - 如果失败,Puppeteer 如何延迟重试 url 获取
- node.js - 从 nodejs 选择器服务器中的应用程序收到的不完整响应
- c# - C# - 有没有办法从具有动态类型的泛型类继承
- c++ - 如何修复“1/0!+ 1/1!+ 1/2!+....+ 1/n!”的代码