Загрузка файла ограничена 1 МБ? - PullRequest
2 голосов
/ 02 марта 2010

Я не могу понять, почему мой сервер не принимает файлы размером более 1 МБ. Я использую cpanel, и мой хост сказал мне, что я не могу редактировать мой файл php.ini напрямую.

Мой код загрузки:

<?php
if (array_key_exists('uploadfile', $_POST)) {
    $fileName = $_FILES['userfile']['name'];
    $tmpName  = $_FILES['userfile']['tmp_name'];
    $fileSize = $_FILES['userfile']['size'];
    $fileType = $_FILES['userfile']['type'];

    $fp      = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

    if (!get_magic_quotes_gpc()) {
        $fileName = addslashes($fileName);
    }

    mysql_query("INSERT INTO tbl_vehiclefiles (`veh_id`,`name`,`type`,`size`,`content`)
VALUES ('$veh_id', '$fileName', '$fileType', '$fileSize','$content')");

    echo '<b>File Upload</b><p>Thank you. The file has been successfully uploaded.

<p><img src="resources/spacer.gif" alt="" width="300px" height="5px" /><p><o>

<i><u>Name:</u>&nbsp;' . $fileName . '<p><i><u>Size:</u>&nbsp;' . $fileSize . 'k' . '<p><u>Type:</u>&nbsp;' . $fileType . '</i><p><p><img src="resources/spacer.gif" alt="" width="300px" height="5px" />';

    $file_id = mysql_insert_id();

    echo "</i><p><a href='managevehicle.php?id=$veh_id' class='form'>Manage details</a><p>
         <a href='viewfile2.php?id=$file_id' class='form'>View details</a><p>";
    exit;
}
?>      

<b>File Upload</b></p>
   <p>
     <input type="hidden" name="MAX_FILE_SIZE" value="200000000">
     <span id="sprytextfield1">
     <input name="userfile" type="file" id="userfile">
    </span><BR />
    <input type="hidden" name="uploadfile" value="1"/> 
    <input name="upload" type="submit" id="upload" value=" Upload ">
   </p>

Мне сказали, что я могу создать свой собственный файл php.ini и сохранить его в файловом менеджере cpanel для переопределения некоторых значений php.ini. Вот что у меня есть на данный момент:

//Common local changes:

upload_max_filesize = 20M; // (default 8 - Max, 32)
post_max_size = 20M; // (Average, 20 - Max, 32)
register_globals = Off; // (off by default - you can turn On) 
allow_url_fopen = On; // (off by default - you can turn to On)
memory_limit = 24M; // (default of 8M, Max 32)

но это не имеет никакого эффекта! Есть предложения?

Ответы [ 2 ]

3 голосов
/ 02 марта 2010

я бы начал с чтения максимального размера загрузки с помощью init_get - сделайте это, чтобы убедиться, что ваше значение принимается: http://php.net/manual/en/function.ini-get.php

если вы хотите изменить значение в вашем скрипте, вы можете использовать init_set: http://php.net/manual/en/function.ini-set.php

2 голосов
/ 26 декабря 2011

Изменения в .htaccess

.htaccess файлы применяются только к веб-серверам Apache. Это файлы, которые добавляют и изменяют определенные параметры, которые использует Apache, и они помещаются в корневую папку (и все папки ниже будут использовать эти параметры). Если Apache использует PHP в качестве модуля, вы можете добавить следующие параметры в файл .htaccess:

php_flag file_uploads On
php_value memory_limit 8M
php_value post_max_size 8M
php_value upload_max_filesize 2M
...