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

Форум PHP

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

 

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

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

тема: Очень странная загрузка (файл не попадает в директорию, а размещается рядом со скриптом)
 
 автор: OLi   (03.06.2011 в 19:37)   письмо автору
 
 

Есть скрипт загрузки фото...он лежит в одной папке с папкой images, т-е на одном уровне вложенности.
В скрипте прописан путь:

$uploaddir = 'images/'; // Relative path under webroot
$uploadfile = $uploaddir . basename($_FILES['fileToUpload']['name'][$i]);

Т-е файл должен загрузится в папку images
Но грузит в корень сайта почему-то.

  Ответить  
 
 автор: cheops   (03.06.2011 в 19:56)   письмо автору
 
   для: OLi   (03.06.2011 в 19:37)
 

А вы непосредственно перед копированием файла выведите значение $uploadfile - в нем никаких аномалий нет?

  Ответить  
 
 автор: OLi   (03.06.2011 в 19:59)   письмо автору
 
   для: cheops   (03.06.2011 в 19:56)
 

Выводит images/1.jpg

  Ответить  
 
 автор: OLi   (03.06.2011 в 20:22)   письмо автору
 
   для: OLi   (03.06.2011 в 19:59)
 

в чем дело?

  Ответить  
 
 автор: cheops   (03.06.2011 в 20:22)   письмо автору
 
   для: OLi   (03.06.2011 в 19:59)
 

А как копирование файла производится? Приведите эту строчку (нет там модификации пути прямо в аргументах функции)?

  Ответить  
 
 автор: OLi   (03.06.2011 в 20:36)   письмо автору
 
   для: cheops   (03.06.2011 в 20:22)
 

 
      
  
for ($i = 0; $i<count($_FILES); $i++) {    

$fg=mysql_query("select id as `q` from listings order by id desc limit 1");
                $dd=mysql_fetch_array($fg);
                
                $nmb=mt_rand (1, 9999);
                
                $nmy=$nmb;
    
$filename=basename($_FILES['fileToUpload']['name'][$i]);                
                $uploaddir = 'images/'; // Relative path under webroot
 echo $uploadfile = $uploaddir . basename($_FILES['fileToUpload']['name'][$i]);
 if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'][$i], $uploadfile)) {
   echo "Успешно загружено.\n";
 
 rename($uploadfile, $nmy.'.jpg');
                
                createThumbnail($filename,$uploadfile,$nmy); 
                 $add_photos=mysql_query("INSERT INTO images (listid, fname) VALUES ('$dd[q]+1', '".$uploadfile."')");
            if ($add_photos==false){$error='Ошибка занесения в базу';}
            
                } else {$error="Ошибка загрузки фото";}
                
               
                
            }
      

  Ответить  
 
 автор: cheops   (03.06.2011 в 21:05)   письмо автору
 
   для: OLi   (03.06.2011 в 20:36)
 

Ага, дело в этой строке
rename($uploadfile, $nmy.'.jpg');
Она берет файл из директории images, переименовывает и помещает в директорию рядом со скриптом, так как в $nmy нет директории, только имя файла.

  Ответить  
 
 автор: OLi   (04.06.2011 в 12:18)   письмо автору
 
   для: cheops   (03.06.2011 в 21:05)
 

Спасибо. я засунул rename('images/'.$filename, $nmb.'.jpg'); в функцию createThumbnail($filename,$uploadfile,$nmy);
в функцию...но она тоже создает переименованный файл не в папке images

  Ответить  
 
 автор: cheops   (04.06.2011 в 14:00)   письмо автору
 
   для: OLi   (04.06.2011 в 12:18)
 

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

  Ответить  
 
 автор: OLi   (04.06.2011 в 14:31)   письмо автору
 
   для: cheops   (04.06.2011 в 14:00)
 

Я просто других вариантов не вижу, поэтому и пишу..

  Ответить  
 
 автор: cheops   (04.06.2011 в 15:04)   письмо автору
 
   для: OLi   (04.06.2011 в 14:31)
 

Сначала просто в этой строке
 rename($uploadfile, $nmy.'.jpg');
сделайте так, чтобы второй параметр также содержал в начале подкаталог images/
 rename($uploadfile, $uploaddir.$nmy.'.jpg');
а потом уже, когда эта строка будет вести себя как надо можно начинать передвигать её.

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

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