2010-12-26 2 views
0

Я не могу загрузить большие файлы на сервер. Проблема в том, что файл $_FILES["filename"]["tmp_name"] пуст, если файл немного больше, чем 2 Мб. Я попытался изменить переменные в php.iniневозможно загрузить большие файлы на сервер с помощью php

upload_max_filesize = 700M 

post_max_size = 16M 

но не работает. Также попытался добавить эти переменные в файл .httaccess, но появляется ошибка 500.

Error code while uploading=1. 
UPLOAD_ERR_INI_SIZE 

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. 

Это моя страница uppload.php, пожалуйста, сообщите, что я делаю неправильно? Thanx!

<?php 
    if(strlen($_FILES["filename"]["name"])) 
    { 
     $folder = "uploads/"; 
     echo $folder; 
     $error = ""; 
     if($_FILES["filename"]["size"] > 1024*700*1024) 
     { 
      $error .= "<b><p class=ErrorMessage>Размер файла превышает 5Mb</p></b><br>"; 
      header("Location: upload.php?error=".$error, true, 303); 
     } 
     if(!file_exists($folder.="hh/")) 
     { 
      if(!mkdir($folder, 0700)) 
       $error .= "<b><p class=ErrorMessage>Folder not created</p></b><br>"; 
     } 
     //echo "<br>".$_FILES["filename"]["tmp_name"]."<br>"; 
     echo $folder.$_FILES["filename"]["name"]."<br>"; 
     echo $_FILES["filename"]["error"]."<br>"; 
     if(move_uploaded_file($_FILES["filename"]["tmp_name"], $folder.$_FILES["filename"]["name"])) 
     { 
      echo("Файл успешно загружен <br>"); 
      echo("Характеристики файла: <br>"); 
      echo("Имя файла: "); 
      echo($_FILES["filename"]["name"]); 
      echo("<br>Размер файла: "); 
      echo($_FILES["filename"]["size"]); 
      echo("<br>Каталог для загрузки: "); 
      echo($folder.=$_FILES["filename"]["name"]); 
      echo("<br>Тип файла: "); 
      echo($_FILES["filename"]["type"]); 
     } 
     else 
     { 
      $error .= "<b><p class=ErrorMessage>Ошибка загрузки файла</p></b><br>"; 
     } 
    } 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Документ без названия</title> 
</head> 

<body> 
     <?php 
      if(isset($_REQUEST["error"])) 
      { 
       echo $_REQUEST["error"];  
      } 
     ?> 
     <h2><p><b> Форма для загрузки файлов </b></p></h2> 
     <form action="upload.php" method="post" enctype="multipart/form-data"> 
     <input type="file" name="filename" READONLY><br> 
     <input name="Upload" type="submit" value="Upload"><br> 
     </form> 


</body> 

</html> 
+0

ли вы перезапустить Apache (или любой другой веб-сервер, который вы используете) после изменения php.ini? – bogeymin

+0

yes перезапущен и не работает –

+0

Можете ли вы опубликовать вывод сценария, если вы добавите die (ini_get ('upload_max_filesize')); в начале скрипта? – phihag

ответ

3

проверить настройку php с помощью phpinfo.php, если у вас есть правильная конфигурация. Тогда вы точно узнаете, что делать.

И еще одна вещь: убедитесь, что каталог/tmp доступен для записи для текущего пользователя.

+0

Вы имеете в виду 'phpinfo()' function? 'phpinfo.php' вряд ли будет существовать на каком-либо чужом сервере, если они сами не помещают его. –

+1

Это то, что я имею в виду, им нужно поставить это сами ... – tkt986

3

Возможно, ваш php.ini игнорируется. Попробуйте называть это с PHP.

ini_set('upload_max_filesize', '700M'); 
ini_set('post_max_size', '16M'); 

Или через .htaccess

php_value upload_max_filesize 700M 
php_value post_max_size 16M 
1

попробуйте увеличить эти значения в php.ini

memory_limit = 99M

max_execution_time = 300

upload_max_filesize = 20M

post_max_size = 24M

Смежные вопросы