2013-04-05 5 views
3

Мне нужно иметь возможность загружать файлы на сервер, но перед загрузкой я хотел бы проверить этот файл, будь то этот файл и изображение или сценарий с именем image.jpeg. Для этого я использую библиотеку под названием python-magicЗагрузка файла Django

import magic 

attachment = request.FILES['file'].read() 
m = magic.open(magic.MAGIC_MIME_TYPE) 
m.load() 
ft = m.buffer(attachment) 
m.close() 

Сво работает нормально для меня. Но должен ли я читать весь файл?

attachment = request.FILES['file'].read() 

Я думаю, что это плохая идея, так что мой вопрос в том, насколько заголовок файла вес? Поэтому я могу читать только пару байтов и проверять файлы mime-типа.

ответ

1

Сначала вы можете догадаться о mimetype с помощью модуля mimetype, как предложено here. Если вы согласны с предположением, загрузите файл на свой веб-сервер. В случае, если после этого вы получите доступ к файлу, вы можете выполнить весь чек с предоставленным вами источником, так как вы все равно должны прочитать файл.

Смежные вопросы