Помогите со скриптом загрузки файлов.

MS
На сайте с 26.04.2008
Offline
59
457

Привет всем!

Вот надыбал скриптик загрузки файлов (работает четко):

<?php

if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"files/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($_FILES["filename"]["tmp_name"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
} else {
echo("Ошибка загрузки файла");
}
?>

У меня такой вопрос: Как сделать так, что бы он имя файла генерировал сам (ну например "Hj6Gks") и записывал с новым именем?

skAmZ
На сайте с 04.09.2009
Offline
122
#1

У вас в $_FILES["filename"]["tmp_name"], по сути и так есть сгенерированное имя, вам нужно лишь выдернуть его, ибо там путь полный.

Или сгенерировать можно так:


$allowed_symbols = "23456789abcdeghkmnpqsuvxyz";
$length=mt_rand(5, 8);
$keystring='';
for($i=0;$i<$length;$i++){
$keystring.=$allowed_symbols[mt_rand(0,strlen($allowed_symbols)-1)];
}

Получаем в переменной $keystring такое имя. Тогда вместо


copy($_FILES["filename"]["tmp_name"], "files/".$_FILES["filename"]["name"])

Пишем


copy($_FILES["filename"]["tmp_name"], "files/".$keystring)
MS
На сайте с 26.04.2008
Offline
59
#2

О КЛАСС!! Спасибо огромное!!!! :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий