2013-06-11 23 views
0

有没有简单的方法使用Python上传单个文件?
我知道requests,但它发布了包含单个文件的文件的字典,所以我们在接收另一端的一个文件时遇到了一些问题。在Python中发布单个文件

目前代码发送该文件是:

def sendFileToWebService(filename, subpage): 
    error = None 
    files = {'file': open(filename, 'rb')} 
    try: 
     response = requests.post(WEBSERVICE_IP + subpage, files=files) 
     data = json.load(response) 
(...) 

而问题是,requests发送每个文件中

--7163947ad8b44c91adaddbd22414aff8 
Content-Disposition: form-data; name="file"; filename="filename.txt" 
Content-Type: text/plain 


<beggining of file content> 
(...) 
<end of file content> 
--7163947ad8b44c91adaddbd22414aff8-- 

我想这是一个文件包。有没有办法发送文件“清除”?

回答

2

使用data参数的要求,而不是files参数:

def sendFileToWebService(filename, subpage): 
    error = None 
    try: 
     response = requests.post(WEBSERVICE_IP + subpage, 
           data=open(filename, 'rb')) 
     data = json.load(response) 
(...) 

这将导致该文件的内容放置在HTTP请求的主体。指定files参数会触发请求切换到multipart/form-data

相关问题