Загрузка URI данных изображения: эффективнее ли перезаписать изображение или сначала сравнить его, чтобы увидеть, изменилось ли оно?

Извините, если мой заголовок немного сбивает с толку, было трудно об этом сказать в одном предложении.

У меня есть две формы на веб-сайте, над которым я работаю, которые запрашивают личную информацию (имя, адрес и т. Д.) И вашу фотографию. Первая форма запрашивает информацию для первого добавления в базу данных. У меня есть почти идентичная форма для редактирования этой информации после ее добавления в базу данных. Мои формы используют cropper.js, чтобы позволить пользователю обрезать свою фотографию при загрузке. Это означает, что я отправляю изображения из формы в скрипт PHP в форме данных URI.

На сервере URI данных сохраняется в файл, как показано ниже. Имейте в виду, что с этим сценарием файл уже должен существовать и перезаписывается.

try {
$imgData = str_replace(' ', '+', $_POST['cropped-photo']);
$imgData = substr($imgData, strpos($imgData, ",") + 1);
$imgData = base64_decode($imgData);
} catch (Exception $ex) {
die("Image data not valid, please try again.");
}

try {
$filename = md5("SALT" . $_SESSION['user_id'] . "." . $_POST['id']) . ".png";
$file = fopen("../upload/" . $filename, 'w');
fwrite($file, $imgData);
fclose($file);
} catch(Exception $ex) {
die("Error while uploading photo, please try again later.");
}

Теперь предположим, что когда пользователь отправляет эту форму для обновления своей информации, он снова отправляет точно такую ​​же фотографию. Когда они используют эту форму редактирования, я беру текущую фотографию с сервера, преобразую ее обратно в URI данных и храню в скрытом поле формы, ожидая, что она будет перезаписана, если вместо этого они выберут новую фотографию для загрузки.

Будет ли эффективнее сравнивать вновь отправленную фотографию с уже сохраненной на сервере, чтобы увидеть, совпадают ли они с той же самой, перезаписывая только новую фотографию, или это будет слишком много дополнительных затрат? Я представляю себе чтение файла, который уже существует, преобразование URI данных в PHP, а затем сравнение двух строк, но эти строки очень длинные, поэтому, вероятно, потребуется довольно много вычислительной мощности.

Каждое изображение будет размером 350х450 пикселей, что не так уж и велико. Тем не менее, я обеспокоен эффективностью, поскольку мой сайт может подвергаться атакам / злоупотреблению со стороны определенных сторон любыми возможными способами.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …