通过curl webpy接收文件

时间:2012-10-19 12:00:05

标签: python web.py

我需要通过webpy

中的CURL接收文件
import web
import json

class GetFile:

    def POST(self):
        try:
            i = web.input()
            data = web.data() 
        except Error(e):
            print e

我不知道如何做到这一点,因为没有从CURL

接收数据的示例
curl -o -H "Content-type: text/xml; charset=utf-8" -T doc.xml "http://localhost:8080/get_file

我遇到了问题

HTTP/1.1 405 Method Not Allowed
Content-Type: text/html
Allow: GET
Transfer-Encoding: chunked
Date: Fri, 19 Oct 2012 11:54:13 GMT
Server: localhost

任何人都可以给我一个示例代码来通过curl上传文件并将其保存在某个位置。

2 个答案:

答案 0 :(得分:1)

要获取文件,请使用urllib

import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read()

要上传文件,请务必将内容标记为multipart form data

curl -X POST -H "Content-Type: multipart/form-data;" --data-binary @doc.xml http://localhost:2332/upload

答案 1 :(得分:0)

问题是curl的-T选项默认使用PUT方法,而你只实现了一个POST处理程序。您可以使用-X POST进行尝试,或调查-d及相关选项作为-T的替代选项,默认情况下将使用POST。

或者,如果您打算使用PUT方法上传文件,可以在您的类中添加PUT处理程序。