3

サーバーが 1 MB を超えるファイルを受け入れない理由がわかりません。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)

しかし、それは効果がありません!助言がありますか?

4

2 に答える 2

3

私はinit_getで最大アップロードサイズを読むことから始めます - あなたの値が受け入れられていることを確認するためにこれを行います: http://php.net/manual/en/function.ini-get.php

スクリプトで値を変更したい場合は、init_set を使用できます: http://php.net/manual/en/function.ini-set.php

于 2010-03-01T22:44:16.373 に答える
2

.htaccess への変更

.htaccess ファイルは、Apache Web サーバーにのみ適用されます。これらは、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
于 2011-12-26T19:43:58.080 に答える