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]   

> Описание: как зделать кнопку "+фото"
imediasun
Отправлено: 05 Января, 2013 - 14:46:25
Post Id


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


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


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

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


Как сделать чтобы была одна форма
для загрузки файла и была бы кнопка "+фото"
и при загрузке последующего файла файла
в базу бы добавлялась фотка и миниатюра к ней
и все фото относились бы к одному id
есть такой скрипт за основу
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include('../blocks/bd.php');
  4. //если в посте нажата кнопка сабмит
  5. if (isset($_POST["submite"])){
  6. //если существует суперглобальный массив $_FILES
  7.         if (isset($_FILES["file"])){
  8.                 // Настройки загрузки
  9.                 // Полный путь для папки загрузки согласно глобальных php
  10.                 // Справка $_SERVER - http://php.ru/manual/reserved.variables.server.html
  11.                 $upload_path = $_SERVER["DOCUMENT_ROOT"]."/images/";
  12.                 // Переменная для формирования ссылок
  13.                 $path = "http://".$_SERVER["SERVER_NAME"]."/images/";
  14.                 $max_filesize = 524288; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб). В исходном файле add_goods_save.php в этом деле ошибка
  15.                 // Перед сохранением проверим все файлы на соответствие
  16.                 //
  17.                 for($i = 0; $i<count($_FILES["file"]["name"]); $i++){
  18.                         $infofile = $_FILES["file"]["type"][$i];
  19.                         switch($infofile){
  20.                                 case "image/jpeg":
  21.                                         break;
  22.                                 case "image/gif":
  23.                                         break;
  24.                                 case "image/png":
  25.                                         break;
  26.                                 default:
  27.                                         exit("Формат файла ".$_FILES["file"]["name"][$i]." не поддерживается <br /><a href=\"".$_SERVER["REQUEST_URI"]."\">Вернитесь назад</а>");
  28.                         }
  29.                         // размер файла
  30.                         if($max_filesize <  (int)($_FILES["file"]["size"][$i])){
  31.                                 exit("Размер файла ".$_FILES["file"]["name"][$i]." превышает допустимые 0.5Мб<br /><a href=\"".$_SERVER["REQUEST_URI"]."\">Вернитесь назад</а>");
  32.                         }
  33.                 }
  34.                 // Скрипт взял отсюда http://sanchiz.net/blog/resizing-images-with-php
  35.                 // Там же есть и описание
  36.                 include('classSimpleImage.php');
  37.                 $array = array();
  38.                 for ($i = 0; $i < count($_FILES["file"]["tmp_name"]);$i++) {
  39.                         $filename = $_FILES["file"]["name"][$i];
  40.                         if(move_uploaded_file($_FILES["file"]["tmp_name"][$i],$upload_path.$filename)){
  41.         // Заполняем массив для записи в базу
  42.         $array[$i] = array();
  43.         // Выдёргиваем расширение
  44.         $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
  45.         // Имя файла перевьюшки
  46.         $thumb = "thumb_".substr($filename, 0, strpos($filename,'.')).$ext;
  47.         // Ресайзим
  48.         $image = new SimpleImage();
  49.         $image->load($upload_path.$filename);
  50.         $image->resizeToWidth(33); // Пропорционально по ширене 33 пикселя
  51.         $image->save($upload_path.$thumb);
  52.         // Пишем пути к файлам в массив
  53.         $array[$i][0] = $path.$filename;
  54.         $array[$i][1] = $path.$thumb;
  55.         echo 'Файл №'.$i.'<br />';
  56.         echo '<a href="'.$array[$i][0].'" target="_blank" title="Download '.$array[$i][0].'" >'.$filename.'<br /><img src="'.$array[$i][0].'" /></a><br/>';
  57.         echo '<a href="'.$array[$i][1].'" target="_blank" title="Download '.$array[$i][1].'" >'.$thumb.'<br /><img src="'.$array[$i][1].'" /></a><br />------------------------------------------------------------------------------------<p> </p>';
  58.                         }else{
  59.                                 echo "При загрузке файла ".$filename." возникли ошибки<br />";
  60.                         }
  61.                 }
  62.                 if(count($array)){
  63.                         echo "<br /><br /><br /><h1>Данные массива:</h1> <br />";
  64.                         print_r($array);
  65.                
  66.  
  67.        
  68.                 }
  69.         }
  70. }else{
  71. ?>
  72. <form action="index.php" method="post" enctype="multipart/form-data">
  73. <input name="file[]" type="file" style="width:400px" /><input name="file[]" type="file" style="width:400px" /><input name="file[]" type="file" style="width:400px" /><input name="file[]" type="file" style="width:400px" /><input name="submite" type="submit" value="Отправить" />
  74. </form>
  75. <?
  76. }
  77. ?>
  78.  

(Отредактировано автором: 05 Января, 2013 - 20:01:37)

 
 Top
broshurkaplus
Отправлено: 06 Января, 2013 - 11:29:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




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

добавляете картинку
накладывайте ватемарк себе
ресайзите там как вам надо,
создаете превью
сохраняете превью и картинку в нужной/нужных папках
имена файлов в бд

сделайте код ручно сами, там просто. и почитайте про функции работы с картинками, понятней будет
 
 Top
imediasun
Отправлено: 06 Января, 2013 - 15:42:06
Post Id


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


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


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

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


меня интересует как осуществляется загрузка многих картинок через одно поле input
 
 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