我需要连接到api才能上传单个文件(无块使用)。所有数据都必须作为POST-HTTP-data发送....作为响应,我获得了与上传文件的链接。 api说fn值是filedata?文件名?我认为handeling文件有问题,因为它给我一个错误:urllib2.HTTPError: HTTP Error 415: Unsupported Media Type
import urllib2
import urllib
query_args = {'username':'admin','password':'123456','upload_session':'ABCDEFGH','chunk_no':'1','chunk_number':'1','finalize':'1','filesize':'104857600','fn':open('test.rar', 'rb')}
url = "http://bla.com/upload.php"
data = urllib.urlencode(query_args)
request = urllib2.request(url, data)
response = urllib2.urlopen(request).read()
答案 0 :(得分:0)
query_args['fn']
包含文件指针,而不是文件的内容,需要实际读取文件。您可能想要使用open('test.rar', 'rb').read()
。
您还可以将固定文件大小设置为104857600
;你可能想用os.stat
得到这个,即。 os.stat(filename).st_size
HTTP错误代码415表示:
请求实体具有媒体类型 服务器或资源不支持。例如,客户端 将图像上传为image / svg + xml,但服务器需要图像 使用不同的格式。
您确定支持.rar
个文件吗?您可以尝试添加MIME类型:Content-Type: application/x-rar-compressed
我不能确定这是否能解决您的问题,因为您没有提供足够的细节来重现它。