2015-02-23 2 views
0

Итак, я следил за этой ссылкой http://www.w3schools.com/php/php_file_upload.asp, чтобы сделать загрузку фотографий, но вместо того, чтобы сказать, что файл уже был загружен, когда есть другой файл с тем же именем, как бы я просто изменил его имя файла для чего-то еще, что раньше не использовалось.Загрузка фотографий предотвращает переписывание

Другими словами, если есть еще одно фото с тем же именем, я все еще хочу его загрузить, но я не хочу, чтобы он перезаписывал существующий.

Я basicaly хочу, чтобы заменить это чем-то еще, чтобы сделать это

// Check if file already exists 
if (file_exists($target_file)) { 
echo "Sorry, file already exists."; 
$uploadOk = 0; 

так, что его что-то вроде этого

// Check if file already exists 
if (file_exists($target_file)) { 
"do something to change file name" 
$uploadOk = 1; 

UPDATE: Я получил его на работу. Я просто сделал это так, чтобы он переименовал каждое изображение в уникальный идентификатор, как указано ниже. благодаря

также в том, что предложение должно быть это

$newTarget_file = $target_dir . uniqid() . "." . end($target_file); 
+0

Просто проверьте «file_exists ($ target_file)», если это так, переименуйте и загрузите файл –

+0

, но могу ли я сделать это автоматически? Я не хочу, чтобы они переименовали его только для того, чтобы узнать, что это имя было также принято, а затем нужно сделать это снова. –

+0

Произвольно сгенерировать имя файла на сервере после загрузки? – Jon

ответ

1

добавить случайные numers для переименовать файл

$name = explode(".",$_FILES["file"]["name"]); 
$newName = rand(1,99999) . '.' .end($name); 
move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newName); 

Или вы также положить, если условие, чтобы проверить, если имя файла существует или нет. И если файл доступен, добавьте что-то, чтобы переименовать ваш файл.

+0

Должен использовать [uniqid] (http://php.net/uniqid) вместо случайного между 1-9999^^ – Jon

+0

, если вы хотите добавить uniq id, тогда его следует использовать как $ newName = uniqid(). End ($ name); или $ newName = end ($ name) .uniqid(); –

+0

это все еще просто перезаписывает его –

Смежные вопросы