Ошибка загрузки файла php 1 - Как правильно использовать php_ini? - PullRequest
4 голосов
/ 21 ноября 2011

У меня проблемы с загрузкой PDF на мой сервер.Upload_max_filesize составляет 2M, а количество файлов больше 4M.Я нашел сообщение с такой же проблемой, что и у меня здесь

$ _ ФАЙЛ Загрузка большого файла выдает ошибку 1, хотя upload_max_size больше, чем размер файла

Что я могу собратьс php.net для правильного использования команд ini_set это то, что я в настоящее время использую.

    ini_set('upload_max_filesize', 100000000);
    ini_set('post_max_size', 110000000);
    ini_set('memory_limit', 120000000);
    ini_set('max_input_time', 20);

Но в ссылке, которую я разместил, кажется, что они используют другой метод (если они не простообобщение правильного кода, который есть).Но, похоже, мой код не работает как есть.У меня есть <?php phpinfo(); ?> в нижней части моей страницы, и он говорит, что upload_max_filesize по-прежнему 2M.Я использую правильный синтаксис для ini_set?или моя проблема с загрузкой моих PDF-файлов - что-то еще?

Мой код, обрабатывающий загрузку:

    //======================pdf upload=====================     
    if ($_POST['erasePDF'] == "Yes") //checking if erase box was checked and erasing if true
    {   
        if (file_exists($pdf))
        {
            unlink( $pdf );
            $pdf = "";
        }
    }   

    print_r($_FILES['pdf']);
    if (!empty($_FILES['pdf']['name'])) //checking if file upload box contains a value
    {
        $saveDirectoryPDF = 'pdfs/';            //name of folder to upload to
        $tempName = $_FILES['pdf']['tmp_name']; //getting the temp name on server
        $pdf = $_FILES['pdf']['name'];      //getting file name on users computer

        $test = array();
        $test = explode(".", $pdf);
        if((count($test) > 2) || ($test[1] != "pdf" && $test[1] != "doc" && $test[1] != "docx")){
            echo "invalid file";
        }else{

            $count = 1;
            do{
            $location = $saveDirectoryPDF . $count . $pdf;
            $count++; 
            }while(is_file($location));

            if (move_uploaded_file($tempName, $location))   //Moves the temp file on server
            {                                                           //to directory with real name
                $pdf = $location;
            } 
            else 
            {

                echo "hi";
                echo '<h1> There was an error while uploading the file.</h1>';
            }
        }
    }else{
        $pdf = "";
    }
    if(isset($_POST['link']) && $_POST['link'] != ""){
        $pdf = $_POST['link'];
    }
    //======================end of pdf upload==============

Вывод строки 'print_r ($ _ FILES [' pdf ']);

1017 *

1 Ответ

6 голосов
/ 21 ноября 2011

Некоторые провайдеры не позволяют вам изменять определенные значения во время выполнения. Вместо этого попробуйте либо изменить его в реальном файле php.ini, либо использовать .htaccess (для веб-серверов Apache), где вы можете добавить свою конфигурацию. Вы можете найти больше информации в статье PHP.net на эту тему: Как изменить настройки конфигурации .

На основании вашей истории, пример .htaccess

<IfModule mod_php5.c>
php_value upload_max_filesize 100000000
php_value post_max_size 110000000
php_value memory_limit 120000000
php_value max_input_time 20
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...