Как предотвратить порчу/повреждение файлов во время загрузки с FTP в Django FileField
У меня есть несколько файлов excel и pdf, которые можно открыть и просмотреть правильно. Вероятно, это старые версии обоих. Однако, после загрузки этих файлов с FTP и сохранения их в Django FileField, они становятся поврежденными и больше не могут быть открыты. Все, что мне нужно, это сохранить файл как есть во время перехода.
К сожалению, я не могу поделиться ни одним из файлов, так как они содержат конфиденциальную информацию.
Вот часть кода, используемая для загрузки и сохранения файлов:
with io.BytesIO() as f:
ftplib_connection.retrbinary('RETR ' + filename, f.write)
f.seek(0)
content_file = ContentFile(f.read(), filename) # Try f.getvalue(), f.getbuffer()
return content_file # This will be saved to a Django FileField
Что касается миметипов, я использовал python-magic. Все файлы pdf имеют формат application/pdf
. Однако файлы excel в основном application/CDFV2
. Обратите внимание, что я могу открыть и просмотреть эти файлы в их исходном состоянии. Проблема возникает после того, как они получены с FTP-сервера и сохранены в Django FIleField.