В любом web-проекте в определенное время возникает вопрос как загружать/скачивать файлы. В этой статье рассмотрим важные аспекты этих процедур:
- Можно загружать файлы не только в виде байт, но и формате base64.
- Файл загружается на веб-сервер и сохраняется как временный файл
- При передаче файла на сервер используется кодирование multipart/form-data
- Из временного файла можно получить оригинальное название файла, байты файла, тип содержимого(ContentType), размер.
- На основе байтов можно рассчитать хэш. Например, алгоритмом MD5, SHA-1 или SHA-256.
- Хэш файла может пригодиться при отдаче файла, чтобы проверить целостность.
- При отдаче файла следует указать HTTP-заголовок Content-Disposition. Параметр inline сообщает браузеру, что файл можно открыть непосредственно в браузере, если конечно позволяет тип файла. Параметр attachment сообщает, что файл должен скачиваться. Также в Content-Disposition передается наименование файла, которое лучше кодировать с помощью URL Encoding.
- Если в браузере вы хотите отобрать процесс загрузки файла, например, в процентах, то проще всего это сделать через javascript, который может отслеживать кол-во отправленных байтов.