【发布时间】:2018-01-17 18:19:37
【问题描述】:
我一直在尝试将 ajax 样式的文件上传组件(如 dojox 文件上传组件)与 google 应用引擎一起使用,并且有一个进度条。
javascript 方面很好,但我想知道如何在服务器端组织事情?
在谷歌应用程序引擎中上传数据时是否可以访问数据,也许是 BaseHTTPServer ?然后我可以从客户那里轮询这个。
即使无法进行进度,至少能够终止一个大文件并让用户知道它太大而不让用户上传 1MB(谷歌应用引擎限制) 然后发现它太大了。
还有一些类似的问题:Similar stack overflow question 1、Similar stack overflow question 2。
以下 google app engine python 代码只是简单文件上传的基本 post 处理程序(工作正常),但我正在寻找一些在较低级别运行的东西。当 post 处理程序获取它时,文件已全部上传。
在 LAMP 堆栈上,您可以轮询监视临时文件大小增长的服务器端脚本。当文件从临时文件夹中移动时,您就知道它已完成。通过使用这种方法,您可以在不使用 flash 的情况下查看多个文件的进度,我不确定如何使用 google app engine 做同样的事情。
class fileupload(webapp.RequestHandler):
"""
"""
def post(self):
if "image" in self.request.arguments():
content = "<html><body>Error</body></html>"
form = self.request.params['image']
logging.info(form)
try:
filename = form.filename
siz = len(form.value)
###--- Show data
logging.info("Filename: %s" % form.filename)
logging.info("Size: %s" % siz)
content = "<html><body>File has been uploaded Name: %s Size: %s</body></html>" % (filename, siz)
logging.info("DONE")
except:
logging.info("Error: bad form or something like that")
logging.info("writing out response")
self.response.out.write(content)
【问题讨论】:
标签: python google-app-engine progress-bar