使用python脚本POST后,$ _FILES为空

时间:2014-06-04 03:57:59

标签: php python

我有一个python脚本,应该将文件上传到php脚本。

的Python

import requests

file={'file':('text.txt','hello')}

url='mywebsite.org/test.php


response = requests.post(url, files=file)

print(response.text)

PHP

<?php
    var_dump($_FILES);
    var_dump($_POST);
?>

这是我对python脚本的响应:

  

array(0){

     

}

     

array(0){

     

}

但是,当我尝试发布到http://httpbin.org/post时,

我得到了

  

...

     

“files”:{

     
    

“file”:“你好”

  
     

},

     

...

这似乎表明我的服务器出了问题。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

你的python代码似乎有问题 - 目前你不发送文件,因为它没有打开。假设您的text.txt包含1234。将其发布到http://httpbin.org/post,如下所示:

import requests

file={'file':(open('text.txt','r').read())}

url='http://httpbin.org/post'

response = requests.post(url, files=file)

print(response.text)

我们得到以下回复:

...
"files": {
    "file": "1234"
  },
...

如果你想添加一些额外的参数,你可以这样做:

values = {'message': 'hello'}
response = requests.post(url, files=file, data=values)