Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: $_FILES, как переименовать файл с copy()
 
 автор: Артем125   (08.10.2009 в 22:02)   письмо автору
 
 

Здравствуйте,


$name = 55; вот это имя и нужно записать в новую папку

    if(copy($_FILES["filename"]["tmp_name"], 
        "../foto/".$_FILES["filename"]["name"])) {

если например так if(copy($_FILES["filename"]["tmp_name"], 
        "../foto/"."5")) {
то расширение теряется

  Ответить  
 
 автор: Slo_Nik   (08.10.2009 в 22:40)   письмо автору
 
   для: Артем125   (08.10.2009 в 22:02)
 

имя формируй до того как будешь копировать файл в постоянную директорию

  Ответить  
 
 автор: Артем125   (08.10.2009 в 22:46)   письмо автору
 
   для: Slo_Nik   (08.10.2009 в 22:40)
 

это мне не пойдет, нашел вот это

$type_3="image/pjpeg";
$type_1 = "image/jpeg"; 
$type_2 = "image/gif"; 
$foto_type=$_FILES['filename']['tmp_name'];
$foto=$_FILES['filename']['tmp_name'];
$file=путь к файлу
         if(($foto_type!= $type_1) and ($foto_type!= $type_2) and ($foto_type!=$type_3)){ $foto="";}
          else
          {
           if ($foto_type == $type_1 or $foto_type==$type_3) $fo=$id.".jpg";
           elseif ($foto_type == $type_2) $fo=$id.".gif";
           move_uploaded_file ("$foto", "".$file."/".$fo);
           $foto=$file."/".$fo;
          }

  Ответить  
 
 автор: Slo_Nik   (08.10.2009 в 23:04)   письмо автору
 
   для: Артем125   (08.10.2009 в 22:46)
 

нормально подойдёт.
сформируй имя файла как тебе посоветовали Diplex или neadekvat, меньше писать надо будет
вот ещё один вариант

<?php
/* формируем путь к файлу */
$patch "путь куда надо поместить файл";
/* определяем расширение файла */
 
$ext strtolower(strrchr($_FILES['image']['name'], "."));
/* формируем имя файла */
$image "newname"."$ext";
/* перемещаем файл из временной директории сервера в 
 директорию /files web - приложения */
if(move_uploaded_file($_FILES['image']['tmp_name'],"$patch".$image)){
echo 
"файл загружен";
}
?>

  Ответить  
 
 автор: Diplex   (08.10.2009 в 22:45)   письмо автору
 
   для: Артем125   (08.10.2009 в 22:02)
 

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

  Ответить  
 
 автор: neadekvat   (08.10.2009 в 22:45)   письмо автору
 
   для: Артем125   (08.10.2009 в 22:02)
 

Нужно не copy, а move_uploaded_file использовать

<?php      
      $explode 
explode('.'$_FILES['filename']['name']); // разрезаем имя по точкам
      
$i count($explode) - 1// извращаемся на случай, если в названии файла были еще точки
      
$extension $explode[$i]; // расширение файла нашли
      
$new_name '5.'.$extension;
      if (
move_uploaded_file($_FILES['filename']['tmp_name'], "files/".$new_name)) {
        ...
       }

  Ответить  
 
 автор: Артем125   (08.10.2009 в 23:29)   письмо автору
 
   для: neadekvat   (08.10.2009 в 22:45)
 

Спасибо, Вам, друзья!

  Ответить  
 
 автор: LEM   (09.10.2009 в 11:05)   письмо автору
 
   для: neadekvat   (08.10.2009 в 22:45)
 

Нужно не copy, а move_uploaded_file использовать
и какая разница?

  Ответить  
 
 автор: neadekvat   (09.10.2009 в 13:59)   письмо автору
 
   для: LEM   (09.10.2009 в 11:05)
 

copy() - копирует файлы.
А move_uploaded_file() перемещает загруженные файлы. Использовать copy даже логически неверно

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования