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]   

> Без описания
Yuriy
Отправлено: 05 Января, 2008 - 22:28:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007  
Откуда: Азов


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




Вроде и полно в сети примеров и описаний, но решил всё же поместить конкретный код в данный раздел форума. Автор типа я Улыбка

PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3.   <title>Пример загрузки файла на сервер</title>
  4. </head>
  5. <body>
  6.   <!-- Форма загрузки файла на сервер -->
  7.   <form enctype="multipart/form-data" action="upload.php" method="POST">
  8.     <input type="hidden" name="MAX_FILE_SIZE" value="6000000" /> <!-- Максимально доступный размер закачиваемого файла ~6 МБ -->
  9.     <input type="file" name="file_name" />
  10.     <input type="submit" value="Upload" />
  11.   </form>
  12.   <?PHP
  13.   // Если файл успешно загружен на сервер, то...
  14.   if ($_FILES['file_name']['error']==0)
  15.   {
  16.     // Копируем его в директорию files на сервере
  17.     copy($_FILES['file_name']['tmp_name'],'./files/'.$_FILES['file_name']['name']);
  18.   }
  19.   // Выводим ошибки при загрузке файла / сообщение успешной его закачки на экран
  20.   switch ($_FILES['file_name']['error'])
  21.   {
  22.     case 0:
  23.       echo "<font color="blue">Файл загружен! Его имя: ",$_FILES['file_name']['name'],", размер: ",$_FILES['file_name']['size']," байт(ов).</font>";
  24.       break;
  25.     case 1:
  26.       echo "<font color="red">Ошибка! Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.</font>";
  27.       break;
  28.     case 2:
  29.       echo "<font color="red">Ошибка! Размер принятого файла превысил максимально допустимый размер [",$_POST['MAX_FILE_SIZE'],"].</font>";
  30.       break;
  31.     case 3:
  32.       echo "<font color="red">Ошибка! Загружаемый файл был получен только частично.</font>";
  33.       break;
  34.     case 4:
  35.       echo "<font color="red">Ошибка! Файл не был загружен.</font>";
  36.       break;
  37.   }
  38.   ?>
  39. </body>
  40. </html>


-----
Yuriy
 
 Top
valenok Модератор
Отправлено: 19 Мая, 2009 - 23:24:08
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Как обычно, разбирах барахло, нашел такое:
Хранить не хочется, писать каждый раз по новой тоже.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. // $file  - элемент массива _FILES
  5.  
  6.  function upload( $file , $destination, $max_size=8124 , $valid_types=Array('image','text') , $valid_extensions=array('gif','jpg','png','bmp') ){
  7.          
  8.   if (!isset($file["name"]) || !is_uploaded_file($file['tmp_name'])) return false;  
  9.    
  10.   // Checking file size  
  11.   if($file['size'] > $max_size)   return false;
  12.    
  13.   // Getting file type  
  14.   $type=substr($file['type'],0,strpos($file['type'],'/'));  
  15.   $ext=substr($file['name'],strrpos($file['name'],'.')+1);  
  16.    
  17.   // Checking file type  
  18.   if( !in_array($type,$valid_types) || !in_array($ext,$valid_extensions))  return false;
  19.    
  20.   if($file['error']!=0) return false;
  21.    
  22.   $des = $destination . basename($file['name']).time();  
  23.   if(!move_uploaded_file($file['tmp_name'], $des))   return false;
  24.  
  25.   return $des;  
  26.    
  27. }
  28.  


Пару комментариев, скорее себе, на будущее, когда скопирую себе отсюда же эту функцию.


  • Ну кто же проверяет размер файла в скрипте.. Есть htaccess
  • Зачем ты проверяешь тут расширение ? Как будто сам никогда его не подменивал.
  • Полезно было бы возвращать причину неудачи, а не true / false
  • Да и вообще давно уже есть http://pecl.php.net/package/uploadprogress


-----
Truly yours, Sasha.
 
My status
 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