Google appengine's webapp2 has a very cryptic documentation regarding the handling of uploaded files.
Uploaded files are available as cgi.FieldStorage (see the cgi module) instances directly in request.POST.
I have a form which makes a POST request of JSON files which I want to store in an NDB.JsonProperty.
Can anyone offer a short example of how do I read the file from the request object?
You can use
enctype="multipart/form-data"
in your form, and then get file content by using in your handler:Then, pass raw_file as input to your model's property.
Instead of using the solution described in How does cgi.FieldStorage store files?, I used enctype="multipart/form-data" in the form, and
in the handler method for the post I accessed the files via:
it worked!
Google's document just sucks. I've spent about two hours experimenting with webapp2's request object and finally figures out a way to do this.
Check https://stackoverflow.com/a/30969728/2310396.
The basic code snippets is here:
We use
self.request.POST.getall('attachments')
instead ofself.request.POST.get('attachments')
, since they may be multipleinput
field in HTML forms with the same name, so if you just useself.request.POST.get('attachments')
, you'll only get one of them.