【发布时间】:2013-06-24 02:59:12
【问题描述】:
我正在尝试使用 curl 和 python 烧瓶将文件上传到服务器。下面我有我如何实现它的代码。关于我做错了什么的任何想法。
curl -i -X PUT -F name=Test -F filedata=@SomeFile.pdf "http://localhost:5000/"
@app.route("/", methods=['POST','PUT'])
def hello():
file = request.files['Test']
if file and allowed_file(file.filename):
filename=secure_filename(file.filename)
print filename
return "Success"
以下是服务器发回的错误
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not understand.</p>
提前致谢。
【问题讨论】:
-
如果您发布数据,您的代码就可以工作,例如
curl -F "Test=@SomeFile.pdf" http://127.0.0.1:5000因此将您的问题缩小到您如何在 Flask 中处理 PUT 请求。 -
我记得一些线程说 request.files 不适用于 PUT。你可以试试 request.data 吗?
-
你的代码看起来不错,如果你试试会得到什么:curl -X PUT -F Test=@foo.txt localhost:5000
-
@codegeek - 它适用于 PUT 或 POST。
-
@snahor 这个命令在 Windows 上的外观如何? '@foo.txt' 不起作用... curl.exe -X PUT -F Test=...?... localhost:5000