I am trying to upload a file to a server using curl and python flask. Below I have the code of how I have implemented it. Any ideas on what I am doing wrong.
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"
The following is the error that the server sends back
400 Bad RequestBad Request
The browser (or proxy) sent a request that this server could not understand.
Thanks in advance.
解决方案
Your curl command means you're transmitting two form contents, one file called filedata, and one form field called name. So you can do this:
file = request.files['filedata'] # gives you a FileStorage
test = request.form['name'] # gives you the string 'Test'
but request.files['Test'] doesn't exist.