Как отказаться от загруженного файла, если тип содержимого не разрешен? - PullRequest
3 голосов
/ 14 февраля 2012

Я пытаюсь заблокировать нежелательный тип содержимого загружаемых файлов. Я использую код из документации :

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())

Что я обнаружил, так это то, что перед последней строкой с перенаправлением большой двоичный объект уже находится в хранилище больших двоичных объектов, поэтому остается только проверить его тип содержимого и выполнить удаление, если оно нежелательно.

Есть ли другой способ удалить файл, прежде чем он попадет в blobstore?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Вы также можете попробовать accept атрибут <input>, но он поддерживается не во всех браузерах, и если вы действительно хотите, вы можете попробовать некоторые решения Flash или Java-апплета, как упомянуто вдругой ответ .Я лично пошел бы на проверку и удаление на стороне сервера.

2 голосов
/ 14 февраля 2012

единственный способ сделать это до того, как он попадет в Blobstore, находится на стороне клиента, например, проверяя расширение файла с помощью javascript.
как только он попадает в UploadHandler, он уже находится в BlobStore.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...