Как предотвратить порчу/повреждение файлов во время загрузки с 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.

Вернуться на верх