我正在使用BlobstoreService将文件上传到AppEngine的blobstore中。如何限制文件的内容类型或文件类型?例如,我只想允许上传image/jpeg文件。
我正在使用BlobstoreService将文件上传到AppEngine的blobstore中。如何限制文件的内容类型或文件类型?例如,我只想允许上传image/jpeg文件。
无法事先禁止用户上传被禁止的文件类型,因为在用户进行POST请求之前你无法知道他们要上传什么,而且中途结束POST请求没有干净的方法。然后可以在用户上传文件后检测文件类型,如果是被禁止的文件类型,则可以从blobstore删除该文件。
当然,Nick的答案是正确的,你需要在服务器端进行全面的检查(类型、大小等)。如果你真的很担心,可以考虑在客户端进行一些基本的错误检查。在表单提交之前,使用JavaScript检查文件名是否以jpg结尾(以及变体)非常容易实现。但请记得在服务器上也要进行检查。