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 :: загрузка нескольких файлов на серв

 PHP.SU

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


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

> Описание: тема уже была но в ней никто не отвечает
iOnyx
Отправлено: 06 Января, 2014 - 20:47:44
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Март 2013  


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




у меня вопрос по загрузке нескольких изображений однавременно.
сделал такую функцию:
PHP:
скопировать код в буфер обмена
  1. function new_full_img(){
  2.         if(isset($_FILES['file']) && $_FILES['file']['name']){
  3.                 $full_upload_ok = '';
  4.                 foreach($_FILES['file']['name'] as $k => $v){
  5.                         $imgname = date('dmYHis').rand(100, 10000);
  6.                         $year = date('Y');
  7.                         $imgaddr = $_SERVER['DOCUMENT_ROOT']."/images/news/$year/";
  8.                         //проверяем размер
  9.                         if($_FILES['file']['size'][$k] < 1000*1024)
  10.                         {
  11.                                 //проверяем на содержимое
  12.                                 if($_FILES['file']['type'][$k] == "image/gif" || $_FILES['file']['type'][$k] == "image/jpg" || $_FILES['file']['type'][$k] == "image/jpeg" || $_FILES['file']['type'][$k] == "image/png")
  13.                                 {
  14.                                         //проверяем загружен ли файл на сервер
  15.                                         if(is_Uploaded_file($_FILES['file']['tmp_name'][$k]))
  16.                                         {
  17.                                                 //проверяем размеры
  18.                                                 $size = GetImageSize($_FILES['file']['tmp_name'][$k]);
  19.                                                 if($size[0] > 1024 AND $size[1] > 768)
  20.                                                 {
  21.                                                         echo "<center><h2>ОШИБКА!FULL Максимальный размер картинки 1024*768px.</h2><br /><input type='submit' value='назад' onClick='history.go(-1)' /></center>";
  22.                                                     exit();
  23.                                                 }else{
  24.                                                         $type_file = str_replace('image/', '', $_FILES['file']['type'][$k]);
  25.                                                         if(move_Uploaded_file($_FILES['file']['tmp_name'][$k], $imgaddr.$imgname[$k].'.'.$type_file))
  26.                                                         {
  27.                                         global $full_upload_ok;
  28.                                         $full_upload_ok .= imgname[$k].".".$type_file."\r\n";
  29.                                         $full_upload_ok = trim($full_upload_ok);                                                              
  30.                                         return $full_upload_ok;
  31.                                                                
  32.                                                         }else{
  33.                                                         echo "<center><h2>ОШИБКА!FULL Файл не загружен.</h2><br /><input type='submit' value='назад' onClick='history.go(-1)' /></center>";
  34.                                                         exit();
  35.                                                         }
  36.                                                 }
  37.                                         }else{ echo "<center><h2>ОШИБКА!FULL Файл не загружен на сервер.</h2><br /><br /><input type='button' value='ВЕРНУТЬСЯ НАЗАД' onClick='history.go(-1)' /></center>";
  38.                                 exit(); }
  39.                                 }else{
  40.                                 echo "<center><h2>ОШИБКА!FULL Неверный формат изображения! Либо превышен размер изображения в пикселях.</h2><br /><br /><input type='button' value='ВЕРНУТЬСЯ НАЗАД' onClick='history.go(-1)' /></center>";
  41.                                 exit(); }
  42.                         }else{
  43.                         echo "<center><h2>ОШБИКА!FULL Максимальный размер всех файла не должен превышать  1мб.</h2><br /><br /><input type='button' value='ВЕРНУТЬСЯ НАЗАД' onClick='history.go(-1)' /></center>";
  44.                         exit(); }
  45.                        
  46.                 }
  47.         }
  48. }


но загружается почему то одна картинка. может подскажете где я ошибся?
 
 Top
caballero
Отправлено: 06 Января, 2014 - 21:06:35
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




вы идете циклом по одному и тому же файлу


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
iOnyx
Отправлено: 06 Января, 2014 - 22:29:48
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Март 2013  


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




а как же мне тогда сразу с несколькими файлами работать. т.е. как правильно цикл разместить?

(Отредактировано автором: 06 Января, 2014 - 22:42:46)

 
 Top
iOnyx
Отправлено: 08 Января, 2014 - 19:59:47
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Март 2013  


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




пробовал так:

но пока не помогло
 
 Top
iOnyx
Отправлено: 09 Января, 2014 - 19:24:17
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Март 2013  


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




спустя неделю рысканья по интернету нашлось решение:
PHP:
скопировать код в буфер обмена
  1. function new_full_img(){
  2.        
  3.         $pic_weight = 3000;
  4.         $pic_height = 3000;
  5.        
  6.         if (isset($_FILES))
  7.         {
  8. //пролистываем весь массив изображений по одному $_FILES['file']['name'] as $k=>$v
  9. foreach ($_FILES['file']['name'] as $k=>$v)
  10.                 {
  11. //директория загрузки
  12. $year = date('Y');
  13. $uploaddir = $_SERVER['DOCUMENT_ROOT']."/images/news/$year/";
  14. //новое имя изображения
  15. $apend=date('YmdHis').rand(100,1000).'.png';
  16. //путь к новому изображению
  17. $uploadfile = "$uploaddir$apend";
  18.        
  19. //Проверка расширений загружаемых изображений
  20. if($_FILES['file']['type'][$k] == "image/gif" || $_FILES['file']['type'][$k] == "image/png" ||
  21. $_FILES['file']['type'][$k] == "image/jpg" || $_FILES['file']['type'][$k] == "image/jpeg")
  22.                         {
  23. //черный список типов файлов
  24. $blacklist = array(".php", ".phtml", ".php3", ".php4");
  25. foreach ($blacklist as $item)
  26.                                 {
  27. if(preg_match("/$item\$/i", $_FILES['file']['name'][$k]))
  28.                 {
  29.         echo "Нельзя загружать скрипты.";
  30.         exit;
  31.                 }
  32.                 }
  33.        
  34. //перемещаем файл из временного хранилища
  35. if (move_uploaded_file($_FILES['file']['tmp_name'][$k], $uploadfile))
  36.         {
  37. //получаем размеры файла
  38. $size = getimagesize($uploadfile);
  39. //проверяем размеры файла, если они нам подходят, то оставляем файл
  40. if ($size[0] < $pic_weight && $size[1] < $pic_height)
  41.         {
  42. global $full_upload_ok;
  43. $full_upload_ok .= $apend."\r\n";
  44. //$full_upload_ok = trim($full_upload_ok);                                                             
  45.                                                                
  46.                 }
  47. //если размеры файла нам не подходят, то удаляем файл unlink($uploadfile);
  48. else
  49.         {
  50. echo "<center><br>Размер пикселей превышает допустимые нормы.</center>";
  51.           unlink($uploadfile);
  52.                 }
  53.                 }
  54.         else
  55. echo "<center><br>Файл не загружен, вернитесь и попробуйте еще раз.</center>";
  56.     }
  57.     else
  58.       echo "<center><br>Можно загружать только изображения в форматах jpg, jpeg, gif и png.</center>";
  59.   }
  60. }


а вывод получился такой:

PHP:
скопировать код в буфер обмена
  1.  $sql = mysql_query("SELECT * FROM an_news WHERE id='$id'") or die (mysql_error());
  2.  $newid = mysql_fetch_array($sql);
  3. $files = ((!empty($newid['full_img']))? explode("\r\n", $newid['full_img']):array());
  4.  $c = count($files);
  5.  if ($c > 0){
  6.  for ($i=0; $i<$c; $i++)
  7.                     {
  8.  echo "<img hspace='10' class='magnify' style='border: 1px solid #DAD001;'  src='/images/news/$year/$files[$i]' width='180' border='0' />"."\n";
  9.         }
  10.                  }
  11.  


моя конструкция была такая же только что я смог заметить новой функции мешала вот эта запись:
 
 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