@skver91

Как загрузить изображение без замены файла?

Необходимо загрузить изображение без замены изображения с таким же именем.
Как это можно сделать?

Вот код:

$imageinfo = getimagesize($_FILES['userfile']['tmp_name']);
 if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg') {
  echo "Sorry, we only accept GIF and JPEG images\n";
  exit;
 }

 $uploaddir = 'uploads/';
 $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
 
 if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
   echo "File is valid, and was successfully uploaded.\n";
 } else {
   echo "File uploading failed.\n";
 }
  • Вопрос задан
  • 2254 просмотра
Пригласить эксперта
Ответы на вопрос 2
KorsaR-ZN
@KorsaR-ZN
Тут только два варианта:
1. сохранить под случайным именем, например md5 от текущего названия и даты и ip
2. Проверяет перед сохранением, существует ли такой файл уже, если да, то к новому прибавляем _N, где N любое число, либо какой-то счетчик одинаковых файлов и т.д...
Ответ написан
Комментировать
benbor
@benbor
Помог ответ - не забудь лайкнуть
укажите уникальное имя
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']).md5(uniqid('',true));
и запомните , где нибудь, например в БД соответсвие фейкового имени к оригинальному, чтобы оригинальное вернуть, когда файл будут скачивать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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