如果不允许内容类型,如何丢弃上传的文件?

时间:2012-02-14 12:22:55

标签: python google-app-engine file-upload content-type

我正在尝试阻止不需要的内容类型的上传文件。我正在使用code from documentation

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
  def post(self):
    upload_files = self.get_uploads('file')  # 'file' is file upload field in the form
    blob_info = upload_files[0]
    self.redirect('/serve/%s' % blob_info.key())

我发现在最后一行重定向之前,blob已经在blobstore中了,所以剩下要做的就是检查它的内容类型,如果不需要就执行删除。

有没有其他方法可以在文件到达blobstore之前将其丢弃?

2 个答案:

答案 0 :(得分:2)

在它到达Blobstore之前执行此操作的唯一方法是在客户端,例如通过使用javascript检查文件的扩展名。
一旦它击中你的UploadHandler它已经在BlobStore中。

答案 1 :(得分:2)

你也可以尝试<input>的{​​{3}}属性,但并不是所有浏览器都支持它,如果你真的想要,你可以尝试一些Flash或Java Applet解决方案,如另一个{ {3}}。我个人会去服务器端检查并删除。