Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файла на сервер, move_uploaded_file 
:(
    Опции темы
MacTep
Дата 26.12.2011, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Прошу подсказать по такой проблеме. Есть форма загрузки файла на сервер:
Код

<form enctype="multipart/form-data" action="upload.php" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="500000">
    <input type="file" name="uploadFile">
    <input type="submit" name="upload" value="Загрузить">
</form>
Есть код, который эту форму обрабатывает:
Код

<html>
<head>
  <title>Результат загрузки файла</title>
  <link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<?php
  print_r($_FILES);
   
  if(isset($_POST['upload'])){
  if($_FILES["uploadFile"]["size"] > 1024*1*1024)
  {
    echo ("Размер файла превышает максимально допустимый (1Мб)!");
    exit;
  }
  $folder = 'user_data/';
  $uploadedFile = $folder.basename($_FILES['uploadFile']['name']);
  if(is_uploaded_file($_FILES['uploadFile']['tmp_name'])){
  if(move_uploaded_file($_FILES['uploadFile']['tmp_name'],
    $uploadedFile))
  {
     echo ('Файл загружен');
  }
  else
  {
     echo ('Во  время загрузки файла произошла ошибка');
  }
  }
  else
  {
   echo ('Файл не  загружен');
  }
  }
?>
</body>
</html>
И все бы было просто замечательно, если бы не одна особенность работы данного решения: если взять определенные файлы и упаковать в TotalCommander'е в архив RAR, то вижу следующий результат работы скрипта
Код

Array ( [uploadFile] => Array ( [name] => Players.rar [type] => application/x-rar-compressed [tmp_name] => /tmp/phpXfABGy [error] => 0 [size] => 37063 ) ) Файл загружен 
Если же эти же файлы этим же TotalCommander'ом запаковать в архив ZIP, то ситуация такая
Код

Array ( [uploadFile] => Array ( [name] => Players.zip [type] => [tmp_name] => [error] => 2 [size] => 0 ) ) Файл не загружен 
Не понимаю, откуда во втором случае берется ошибка [error] => 2. Подскажите, добрые люди, кто что знает!?!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
gta4kv
Дата 26.12.2011, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата

UPLOAD_ERR_FORM_SIZE

Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.

PM MAIL   Вверх
$дмитрий
Дата 26.12.2011, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Прикрепи файл Players.rar, проверю у себя
PM MAIL   Вверх
MacTep
Дата 26.12.2011, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Цитата(gta4kv @  26.12.2011,  01:25 Найти цитируемый пост)
Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.

Хммм... Поставил в MAX_FILE_SIZE 1000000 и файл загрузился. Вопрос: почему не загружалось до этого, если размер файла не превышал 400 кб, а у меня в name="MAX_FILE_SIZE" стояло value="500000"? Приложил файлы для чистоты эксперимента.

Добавлено через 10 минут и 32 секунды
И почему-то мой код не срабатывает на большой файл, не давая его загрузить на сервер. Т.е. на сервер он его, конечно не грузит, но то, что он его сначала весь читает и только потом понимает, что он большой, факт. Можно это как-то обойти, сразу поняв, что файлы больше 1 мегабайта мне обрабатывать вообще не нужно?

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  files.zip 372,61 Kb


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
MacTep
Дата 26.12.2011, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Ммм?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
$дмитрий
Дата 26.12.2011, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Проверил, никаких аномалий

Файл весит 352 903 байт. При значении MAX_FILE_SIZE = 353000, загружает нормально, если 352000 грузить не будет

Цитата

Можно это как-то обойти, сразу поняв, что файлы больше 1 мегабайта мне обрабатывать вообще не нужно? 

Чтобы сервер знал каков размер файла, он должен быть предварительно получен  smile
Однако на стороне клиента можно воспользоваться каким-нибудь загрузчиком jquery/flash, который умеет определять размер и в случаи превышении лимита блокировать передачу данных

Посмотри также на директивы:
upload_max_filesize
post_max_size

PM MAIL   Вверх
MacTep
Дата 26.12.2011, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Спасибо! Будем считать вопрос закрытым.


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.