[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка файлов на сервер
z3rg
вот скрипт загрузки файла на сервер, а как сделать чтобы если такой файл есть то изменялась имя, или к имени добавлялось число рандомно.
PHP
$uploaddir = "uploads/";
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
$res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $uploaddir .
$HTTP_POST_FILES['userfile']['name']);




Спустя 1 час, 31 минута, 34 секунды (10.03.2009 - 04:31) kirik написал(а):
Это подойдет:
PHP
function checkFile($dir$file)
{
    if(
file_exists($dir.$file))
        return 
checkFile($dirrand(1100).'_'.$file);
    else
        return 
$dir.$file;
}

$uploaddir 'uploads/';
$file_name checkFile($uploaddir$_FILES['userfile']['name']);
move_uploaded_file($_FILES['userfile']['tmp_name'], $file_name);

Спустя 3 часа, 30 минут, 16 секунд (10.03.2009 - 08:01) twin написал(а):
Не совсем чисто получится. Дело в том, что файлы очень часто называют одинаково, если это фотография кошки, то фантазия заканчивается на слове kat.jpeg а количество вариантов при такой реализации всего 100. Даже если предположить, что они ни разу не повторятся, все равно 101 кошка заменит какую нибудь из уже имеющихся. Для админок лучше использовать время в юникс-формате (date('U')), а для общего пользования привязывать к логину, id записи или еще какой нибудь уникальной информации.

PS Упс, не разглядел с просонок. Но все равно, по такой схеме файлы могут обрасти кучей префиксов, лучше сразу ставить уникальные номера.

Спустя 15 минут, 1 секунда (10.03.2009 - 08:16) kirik написал(а):
Ну это уже тонкости реализации smile.gif А вот насчет количество не соглашусь с тобой, потому как функция будет вызываться до тех пор, пока не получится такой префикс, с которым название файла будет уникальным.

УПД согласен! smile.gif

Спустя 17 минут, 8 секунд (10.03.2009 - 08:33) Viking написал(а):
http://ru.php.net/manual/ru/function.tempnam.php
вот неплохая функция, правда файл создает

Спустя 1 час, 11 минут, 27 секунд (10.03.2009 - 09:45) z3rg написал(а):
Viking, twin спасибо

kirik, отдельное спасибо, очень помогли.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.