【问题标题】:Google App Engine Python: get image upload size server-sideGoogle App Engine Python:获取图片上传大小服务器端
【发布时间】:2011-02-19 09:02:24
【问题描述】:

我正在构建一个允许用户上传图片的 Google App Engine 应用;我一切正常,但我正在努力寻找一种方法来确保用户不会上传太大的图像(因为我正在调整图像的大小,所以这会使我的 python 脚本崩溃)。 当用户上传大图像时,我收到此错误

RequestTooLargeError: The request to API call images.Transform() was too large.

我知道 GAE 允许它的图像 API 有大小限制,我只是想找到一种方法来处理这个服务器端;类似于

的东西
if (image is too large):
    inform user
else:
    proceed

我没有找到合适的 Python 代码来执行此操作;谁能帮帮我?

【问题讨论】:

  • 那么您的 Transform 方法采用什么类型的对象/类型?
  • 对不起,我不太明白你的问题;我正在使用 enctype=multipart/form-data 从 HTML 表单、文件输入中获取输入,并尝试将该数据发送到 Google 图像 API。我只是想在将数据发送给 Google 之前验证该数据有多大,但我得到了异常

标签: python image google-app-engine


【解决方案1】:
from google.appengine.runtime import apiproxy_errors

...

try:
    #the code you are getting the error at
except apiproxy_errors.RequestTooLargeError, message:
    print message # or something else

【讨论】:

  • 完美,这正是我想要的。我尝试了各种 Try-Except,但我缺少那个 import 语句,所以在引用 RequestTooLargeEror 时我什至无法编译。非常感谢!
  • 我很确定在我第一次遇到此错误后,我必须搜索 appengine 源代码才能找到声明此错误的位置。很高兴它对你有用:)
【解决方案2】:

我不确定我是否完全理解您的问题,但也许可以尝试一下?

try:    
    images.Transform()
except Transform.RequestTooLargeError:
    inform
else:
    proceed

【讨论】:

  • 是的,这就是我要找的,我只是错过了引用 RequestTooLargeError 的适当方法(请参阅上面来自 bboe 的答案)。感谢您的帮助!
猜你喜欢
  • 2013-09-14
  • 2015-03-18
  • 1970-01-01
  • 2013-08-25
  • 2015-02-07
  • 1970-01-01
  • 2014-05-19
  • 2012-09-05
相关资源
最近更新 更多