【发布时间】:2013-12-04 14:41:29
【问题描述】:
我是 Python 新手,这是第一篇文章。想上传一个TXT文件到服务器,(目前是本地主机)。每次我运行脚本,本地文件上传并更新到服务器上。我正在使用Requests 模块
import requests, time
url ='http://192.168.49.205/test/database/data.txt' # where i want to write
files = {'file':('data.txt','C:\Python27\data.txt','rb')}
#r = requests.post(url,files=files) # this works too
r= requests.post('http://192.168.49.205/test/database/data.txt',
data={'upload_type': 'standard', 'upload_to': '0'},files=files)
print r.status_code
print r.text
data.txt 未更新。只是看到旧数据(我在创建文件时输入了一些值)。我没有使用 PHP 或 HTML 中的任何表单。可以用方法上传吗?
相信,我在发布问题后得到了一些澄清。现在,服务器端有一个 PHP 文件在监听客户端。这是“post.php”。因此,这将替换客户端的文本文件。 PHP 文件从客户端获取名称、任务、值并发布到服务器(本地)上的“a.txt”
<?php
if(isset($_GET["Name"])){
$name=$_GET["Name"];
}
if(isset($_GET["Task"])){
$task=$_GET["Task"];
}
if(isset($_GET["Value"])){
$value=$_GET["Value"];
}
$f=fopen("a.txt","w") or exit("Unable to open file!");
fwrite($f,$name);
fwrite($f," ");
fwrite($f,$task);
fwrite($f," ");
fwrite($f,$value);
fclose($f);
?>`
所以现在请求看起来像这样
import requests, time
url = 'http://192.168.49.205/test/test.php'
post_data = {'Name':'job','Task':'008','Value':'8'}
r= requests.post('http://192.168.49.205/test/post.php', data= post_data)
print r.status_code
print r.text
仍然没有达到“a.txt”的值。我错过了什么?请指教!
【问题讨论】:
-
错误可能出在服务器端。
-
http://192.168.49.205/test/database/data.txt是否接受POST请求?那里正在收听什么样的服务? -
data.txt 是纯文本文件。不要想,它需要 POST 请求或监听。在你的问题之后,我明白了。因此,服务器文件应该是接受 POST 请求的 PHP 文件。请承受我的无知。
-
url = 'httpbin.org/post' 文件 = {'file': open('report.xls', 'rb')} r = requests.post(url, files=files)。在这里,在 URL 上 post 到底是什么意思?它是否在服务器上持续监听部分?
-
还有其他方法可能受支持,但通常不支持。 PUT 例如应该做你想做的事。 techforum4u.com/content.php/…
标签: python upload python-requests