如何使用GAE/python处理直接文件上载?
客户端(javascript)使用如何使用GAE/python处理直接文件上载?,python,google-app-engine,Python,Google App Engine,客户端(javascript)使用XMLHttpRequest上载应用程序: var req = new XMLHttpRequest(); req.open('POST', my_app_url, false); req.setRequestHeader("Content-Length", req.length); req.sendAsBinary(req.binary); 我在服务器端使用数据存储(而不是blobstore)。 如何将上载的文件保存到数据存储?我发现Serv
XMLHttpRequest
上载应用程序:
var req = new XMLHttpRequest();
req.open('POST', my_app_url, false);
req.setRequestHeader("Content-Length", req.length);
req.sendAsBinary(req.binary);
我在服务器端使用数据存储(而不是blobstore)。
如何将上载的文件保存到数据存储?我发现
ServletFileUpload
可以与Java一起使用。但是Python如何做到这一点呢?如果你是说在appengine方面,你只需要有一个blobproperty。所以有点像
class SomeEntity(db.Model):
file_data = db.BlobProperty()
class AddData(webapp.RequestHandler)
def post(self):
data = self.request.get("filedata")
e = SomeEntity(file_data = db.Blob(data))
e.put()
请注意,我不确定您上面发布的用于发送请求的代码是否正确,但您可以使用简单的html表单上传文件,如下所示:
<form action="/url_to_adddata_handler/" method="post">
<input type="file" name="filedata">
<input type="submit" value="Submit">
</form>
如果你的意思是在外观方面,你只需要拥有一个blobproperty。所以有点像
class SomeEntity(db.Model):
file_data = db.BlobProperty()
class AddData(webapp.RequestHandler)
def post(self):
data = self.request.get("filedata")
e = SomeEntity(file_data = db.Blob(data))
e.put()
请注意,我不确定您上面发布的用于发送请求的代码是否正确,但您可以使用简单的html表单上传文件,如下所示:
<form action="/url_to_adddata_handler/" method="post">
<input type="file" name="filedata">
<input type="submit" value="Submit">
</form>
您应该使用
self.request.body
class YourUploadHandler(webapp.RequestHandler):
def post(self):
your_binary_content = self.request.body
您应该使用
self.request.body
class YourUploadHandler(webapp.RequestHandler):
def post(self):
your_binary_content = self.request.body
我没有表格。所以我不能使用
self.request.get(“filedata”)
,但看起来像self.request.body
做了我需要的;)。我没有表格。所以我不能使用self.request.get(“filedata”)
,但看起来像self.request.body
做了我需要的;)。