@Hellas

Как не загружать файл на сервер, если найден файл с таким же размером?

Пользователи имеют возможность загружать файлы. Необходимо на сервере проверять, есть ли файл с таким же размером и если есть - выдавать пользователю ссылку на старый файл, вместо того, чтобы загружать новый, точно такой же.
Есть ли готовое решение для подобных задач?
Toster вроде бы использует подобную систему загрузки файлов.
  • Вопрос задан
  • 175 просмотров
Решения вопроса 3
Android97
@Android97
Программист-Альпинист
Можно попробовать держать таблицу, с полями имя файла, размер, хэш, ссылка.
При загрузке проверять запросом, есть ли такой файл в базе, если есть то выдавать ссылку, если нет, то загружать и записывать данные файла в БД
Ответ написан
Комментировать
romanonthego
@romanonthego
можно считать хэш на лету (хотя база быстрее чем доступ к файловой системе).
в любом случае считать хэш а не сравнивать размер - идентичный размер не гарантирует, что содержимое тоже идентично.
готовое решение сильно зависит от того что на сервере.
Ответ написан
Комментировать
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Обычно сравнивают md5-hash содержимого. Это гарантирует наиболее точную проверку. Проверка по размеру это ... неприемлимо, мягко говоря.

Считать содержимое файла через JS вам поможет FileReader. Формируете хэш, спрашиваете у сервера, имеется ли такой.

Для тех браузеров, что не поддерживают эту технологию, придется загружать файл на сервер и уже там проводить проверки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы