загрузка картинки и вывод названия

Станислав
На сайте с 27.12.2009
Offline
258
648

Хочу сделать для сайта загрузчик картинок и тут я встрял, не могу понять что к чему, разжуйте вкратце

С самим загрузчиком разобрался и работает он в норме, а вот нужно сделать генерацию имени, с которой я тоже справился, вот только выводит он имя картинки до загрузки на сервер, вот код

if ( isset($_POST['send']) )

{
$uploaddir = '../uploads/'; // Папка куда закачивать файлы
$extentions = array(".gif",".jpg",".JPG",".png",".PNG"); // Массив разрешенных форматов файлов
$userfilesize = $_FILES['userfile']['size']; // Вычисление размера загружаемого файла
$maxfilesize = 3*1024*1024; // Максимально допустимый размер файла]
$time = time();
$uploadfile = $uploaddir . $time . basename($_FILES['userfile']['name']);

if((in_array(strrchr($_FILES['userfile']['name'], "."),$extentions)) && ($maxfilesize >= $userfilesize)) //
{
// Если копирование произведено удачно, выводим сообщения
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) //
{
$fname = ($_FILES['userfile']['name']); // Вычисление имени файла и присвоение переменной
// echo "Ссылка на ваш файл: <a href='../kolca/$fname'>$fname</a><br>";

$file_link = "<a onclick=\"up('$fname');return!1\" href=\"#\">$fname</a> - нажмите чтобы вставить файл<br />";

if ( isset($_POST['send']) )
{
echo "$file_link";}
if (!$result)
die ("" . mysql_error(). "<br>".$query);}
else
{
........

Файл загружается на сервер и переименовывается, к нему добавляется time.

Файл загрузился, а название выводится без time

Мы там, где рады нас видеть.
R
На сайте с 06.02.2011
Offline
62
#1

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) тут я вижу переименование/перенос

$fname = ($_FILES['userfile']['name']); <-- а тут старое имя имя опять ?

может

$fname = $uploadfile; -?

bool move_uploaded_file (string filename, string destination)

Эта функция проверяет, является ли файл filename правильно загруженным файлом (что он был загружен через PHP-механизм HTTP POST). Если файл является правильным, он будет переименован в файл destination.
Станислав
На сайте с 27.12.2009
Offline
258
#2
RControl:
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) тут я вижу переименование/перенос

$fname = ($_FILES['userfile']['name']); <-- а тут старое имя имя опять ?
может
$fname = $uploadfile; -?

нее, так он в месте с директорией будет брать название

-----------------------------------------

Не стал парится, прописал дополнительный вывод

Да и спасибо RControl, подтолкнул на мысль

R
На сайте с 06.02.2011
Offline
62
#3

...

$uploadfile = $time . basename($_FILES['userfile']['name']);

...

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .$uploadfile))

echo "new name file: ".$uploadfile;

...

Станислав
На сайте с 27.12.2009
Offline
258
#4

все норм =) спасибо

Вот еще вопрос, к примеру загружаемый файл имеет название fgdbhygy.jpg

после загрузки он имеет название 123734445577fgdbhygy.jpg

как убрать fgdbhygy и оставить только цифры, нужно чтобы в названии не было букв, одни лишь цифры и расширение

R
На сайте с 06.02.2011
Offline
62
#5

$uploadfile = $time . substr(basename($_FILES['userfile']['name']),-4)

подразумевается, что имя файла имеет стандартный вид и расширение последнии 4 символа с точкой

Станислав
На сайте с 27.12.2009
Offline
258
#6

спасибо, разобрался, теперь ясно как все это работает, а то я велосипед начал строить )

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