Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: move_uploaded_file

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
imediasun
Отправлено: 16 Декабря, 2012 - 20:12:30
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


Как правильно расположить загружаемые файлы так не работает
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename,$_FILES['userfile2']['tmp_name'],$upload_path . $filename2,
  4. $_FILES['userfile3']['tmp_name'],$upload_path . $filename3,$_FILES['userfile4']['tmp_name'],$upload_path . $filename4))
  5.  

(Отредактировано автором: 16 Декабря, 2012 - 20:15:56)

 
 Top
DelphinPRO
Отправлено: 16 Декабря, 2012 - 20:31:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




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

PHP:
скопировать код в буфер обмена
  1. move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . 'filename.ext')

(Добавление)
для обработки нескольких файлов - цикл


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
imediasun
Отправлено: 16 Декабря, 2012 - 21:31:15
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


DelphinPRO пишет:
O_o
с чего вы решили, что так должно работать?
почитайте документацию по этой функции.
Она принимает два параметра - полное имя загруженного файла и место назначения.

PHP:
скопировать код в буфер обмена
  1. move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . 'filename.ext')

(Добавление)
для обработки нескольких файлов - цикл

как бы вы создали цикл если нужно занести 4 файла,
помогите пожалуйста
 
 Top
DelphinPRO
Отправлено: 16 Декабря, 2012 - 21:46:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. <input type="file" name="file[]">
  2. <input type="file" name="file[]">
  3. <input type="file" name="file[]">
  4. <!-- обратите внимание на кватратные скобки -->


PHP:
скопировать код в буфер обмена
  1. $count = count($_FILES['file']['name']);
  2. for ($i = 0; $i < $count; $i++) {
  3.   $source = $_FILES['file']['tmpname'][$i];
  4.   $destination = $directory . $_FILES['file']['name'][$i];
  5.   if (!move_uploaded_file($source, $destination)) {
  6.     echo 'Error load file '.$_FILES['file']['name'][$i];
  7.   }
  8. }


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
imediasun
Отправлено: 16 Декабря, 2012 - 21:48:57
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


DelphinPRO пишет:
CODE (html):
скопировать код в буфер обмена
  1. <input type="file" name="file[]">
  2. <input type="file" name="file[]">
  3. <input type="file" name="file[]">
  4. <!-- обратите внимание на кватратные скобки -->


PHP:
скопировать код в буфер обмена
  1. $count = count($_FILES['file']['name']);
  2. for ($i = 0; $i < $count; $i++) {
  3.   $source = $_FILES['file']['tmpname'][$i];
  4.   $destination = $directory . $_FILES['file']['name'][$i];
  5.   if (!move_uploaded_file($source, $destination)) {
  6.     echo 'Error load file '.$_FILES['file']['name'][$i];
  7.   }
  8. }

а можно чтобы все файлы заносились ондной кнопкой только по очереди, как вы думаете
 
 Top
DelphinPRO
Отправлено: 16 Декабря, 2012 - 21:54:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




не понял. а я что показал? там одна кнопка и есть. просто я ее не показал

CODE (html):
скопировать код в буфер обмена
  1. <input type="file" name="file[]">
  2. <input type="file" name="file[]">
  3. <input type="file" name="file[]">
  4. <button type="submit">Загрузить файлы</button>


PS не цитируйте полностью мои сообщения. и так видно к какому посту относится ваш ответ.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
imediasun
Отправлено: 16 Декабря, 2012 - 22:04:23
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


Я имею ввиду чтобы был один инпут и пути к фотографиям вносились в одну запись в базе а фотки в одну папку
(Добавление)
Что то не получается у меня занести файлы и путь в базу посмотрите пожалуйста где ошибка (мне же еще как то нужно определить переменную названия пути)
PHP:
скопировать код в буфер обмена
  1.  
  2. $allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов
  3. $max_filesize = 5242888; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).
  4. $upload_path = '../photos/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
  5. $filename = $_FILES['userfile']['name'];
  6.  
  7.  // В переменную $filename заносим точное имя файла (включая расширение).
  8. $file_with_path = $upload_path.$filename;
  9. $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.
  10. if(!in_array($ext,$allowed_filetypes))
  11. die('Данный тип файла не поддерживается.');
  12. if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
  13. die('Фаил слишком большой.');
  14. if(!is_writable($upload_path))
  15. die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');
  16.  
  17.  
  18. $count = count($_FILES['userfile']['name']);
  19.     for ($i = 0; $i < $count; $i++) {
  20.       $source = $_FILES['userfilefile']['tmpname'][$i];
  21.       $destination = $upload_path . $_FILES['userfile']['name'][$i];
  22.       if (!move_uploaded_file($source, $destination)) {
  23.         echo 'Error load file '.$_FILES['userfile']['name'][$i];
  24.       }
  25.    else if (move_uploaded_file($source, $destination)){
  26.  
  27. echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename .'">смотреть</a>';
  28.  
  29. $sql_good= "INSERT INTO goods (id_cat,name_good,price_good,size,length,country,photo1_path,photo2_path,photo3_path,photo4_path,description)
  30.                VALUES ('$cat_id','$name_good','$price_good','$size','$length','$country','$file_with_path','$file_with_path2','$file_with_path3','$file_with_path4','$description')";
  31.  
  32. $query_good=mysql_query($sql_good)or die (mysql_error());
  33. if($query_good) echo 'Запрос на добовление данных в базу данных выполнен успешно.Вернитесь на предыдущую<a href="add_goods.php"> страницу</a>';                        
  34.  
  35. }
  36.  
  37. else
  38. {
  39. echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
  40. }
  41. }
  42. }
  43.  

(Отредактировано автором: 16 Декабря, 2012 - 22:41:40)

 
 Top
DelphinPRO
Отправлено: 16 Декабря, 2012 - 22:50:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. // в это строчке файл УЖЕ перемещается если это возможно
  2. if (!move_uploaded_file($source, $destination)) {
  3.     echo 'Error load file '.$_FILES['userfile']['name'][$i];
  4. }
  5. // а тут получается ЭТОТ ЖЕ файл перемещается СНОВА!!!
  6. else if (move_uploaded_file($source, $destination)){
  7.     echo 'Ваш фаил успешно загружен'
  8. ...


но два раза один и тот же файле нельзя переместить Улыбка его уже нет на старом месте Улыбка
т.е. так следует сделать:
PHP:
скопировать код в буфер обмена
  1. // в это строчке файл УЖЕ перемещается если это возможно
  2. if (!move_uploaded_file($source, $destination)) {
  3.     echo 'Error load file '.$_FILES['userfile']['name'][$i];
  4. }
  5. else {
  6.     echo 'Ваш фаил успешно загружен'
  7. ...


по поводу
imediasun пишет:
Я имею ввиду чтобы был один инпут
в HTML5 был добавлен атрибут «multiple» как раз для выбора нескольих файлов. но мне им пользоваться пока не приходилось, ничего сказать не могу. а тестить сейчас лень Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
imediasun
Отправлено: 16 Декабря, 2012 - 22:54:36
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


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

Данный тип файла не поддерживается.
(Добавление)
Зделал так все равно не работает
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.     $count = count($_FILES['userfile']['name']);
  4.     for ($i = 0; $i < $count; $i++) {
  5.       $source = $_FILES['userfilefile']['tmpname'][$i];
  6.       $destination = $upload_path . $_FILES['userfile']['name'][$i];
  7.       if (!move_uploaded_file($source, $destination)) {
  8.         echo 'Error load file '.$_FILES['userfile']['name'][$i];
  9.       }
  10.  
  11.  else
  12.  {
  13. echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename .'">смотреть</a>';
  14.  
  15. $sql_good= "INSERT INTO goods (id_cat,name_good,price_good,size,length,country,photo1_path,photo2_path,photo3_path,photo4_path,description)
  16. VALUES ('$cat_id','$name_good','$price_good','$size','$length','$country','$file_with_path','$file_with_path2','$file_with_path3','$file_with_path4','$description')";
  17.  
  18. $query_good=mysql_query($sql_good)or die (mysql_error());
  19. if($query_good) echo 'Запрос на добовление данных в базу данных выполнен успешно.Вернитесь на предыдущую<a href="add_goods.php"> страницу</a>';                        
  20.  
  21. }
  22.  
  23. else
  24. {
  25. echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
  26. }
  27. }
  28.  
  29.  
 
 Top
DelphinPRO
Отправлено: 16 Декабря, 2012 - 23:09:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




imediasun пишет:
Данный тип файла не поддерживается.
ну так загружайте поддерживаемые файлы Улыбка

кстати, проверку расширения можно упростить
imediasun пишет:
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);

лучше так
PHP:
скопировать код в буфер обмена
  1. $ext = pathinfo($filename, PATHINFO_EXTENSION); // расширение без точки


и соответственно
PHP:
скопировать код в буфер обмена
  1. $allowed_filetypes = array('jpg','gif','bmp','png');


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
imediasun
Отправлено: 17 Декабря, 2012 - 00:16:51
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


Ничего не работает, что тут не так?
PHP:
скопировать код в буфер обмена
  1.  
  2. // Загружаем фаил в указанную папку.
  3. $count = count($_FILES['userfile']['name']);
  4.     for ($i = 0; $i < $count; $i++) {
  5.       $source = $_FILES['userfilefile']['tmpname'][$i];
  6.           $filename = $_FILES['userfile']['name'][$i];
  7.                   $ext = pathinfo($filename, PATHINFO_EXTENSION); // расширение без точки
  8.           $upload_path = '../photos/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
  9.           $allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов
  10.           $file_with_path = $upload_path.$filename;
  11.       $destination = $upload_path . $_FILES['userfile']['name'][$i];
  12.       if (!move_uploaded_file($source, $destination)) {
  13.         echo 'Error load file '.$_FILES['userfile']['name'][$i];
  14.       }
  15. else
  16. {
  17. echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename .'">смотреть</a>';
  18.  
  19. $sql_good= "INSERT INTO goods (id_cat,name_good,price_good,size,length,country,photo1_path,photo2_path,photo3_path,photo4_path,description)
  20. VALUES ('$cat_id','$name_good','$price_good','$size','$length','$country','$file_with_path','$file_with_path2','$file_with_path3','$file_with_path4','$description')";
  21.  
  22. $query_good=mysql_query($sql_good)or die (mysql_error());
  23. if($query_good) echo 'Запрос на добовление данных в базу данных выполнен успешно.Вернитесь на предыдущую<a href="add_goods.php"> страницу</a>';                        
  24. }
  25. else
  26. {
  27. echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
  28. }
  29. }
  30.  
  31.  
 
 Top
DelphinPRO
Отправлено: 17 Декабря, 2012 - 07:50:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Вы не понимаете того что пишете. К сожалению, я вряд ли смогу вам помочь.

зы
Что делать, если ничего не работает


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
esterio
Отправлено: 17 Декабря, 2012 - 20:27:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1.
imediasun пишет:
$allowed_filetypes = array('.jpg','.gif','.bmp','.png');

уберите точки, тоесть
PHP:
скопировать код в буфер обмена
  1. $allowed_filetypes = array('jpg','gif','bmp','png');

2. у вас $count раз делаеться запрос на добавление в базу в цикле, а нужно один раз
3. сделайте отдельную таблицу для изображений и связивайте по ИД. так вы сможите загружать сколько угодно картинок.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB