1

PHP で約 25 MB の大きなサイズのファイルを読み取るのに問題があります。最大入力ファイル サイズを 50 MB に変更しようとしましたが、まだ機能していません。これはフォームのコードです。

<html>
<body>

<form action="parsed_xml.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

PHP ファイルのコードは次のとおりです。

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  print_r ($_FILES["file"]);
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>

エラーは発生しません。$_FILES 配列には何も格納されていません。

ありがとう

ジェームズ

4

5 に答える 5

4

php.ini ファイルで、Apache によって設定された制限を増やす必要があるように思えます。

post_max_size=50M
upload_max_filesize=50M

ini ファイルにアクセスできない場合は、ホストに制限を増やすよう依頼してください。

于 2013-02-22T11:22:12.100 に答える
2

2つのPHP構成オプションが最大アップロードサイズを制御します:upload_max_filesizepost_max_size。両方とも、たとえば、10メガバイトのファイルサイズの場合は「10M」に設定できます。

ただし、アップロードの完了にかかる時間も考慮する必要があります。PHPスクリプトは通常30秒後にタイムアウトしますが、10MBのファイルを正常なブロードバンド接続にアップロードするには少なくとも3分かかります(アップロード速度は通常、ダウンロード速度の5倍遅いことに注意してください)。さらに、アップロードされた画像を操作または保存すると、スクリプトがタイムアウトする場合もあります。したがって、PHPを300(5分を秒単位で指定)のように設定する必要がありmax_input_timeますmax_execution_time

次に、以下を使用して設定できます。

  1. in php.ini - set these values and restart server
  2. set it in htaccess
  3. Set in your php code using ini_set

参照:http ://www.sitepoint.com/upload-large-files-in-php/

于 2013-02-22T11:23:20.553 に答える
0

サーバーのアップロード制限を確認してください。大きなファイルをアップロードするには、これを増やす必要があります。

確認事項: 構成を変更した後、PHP プロセスを再起動しましたか?

于 2013-02-22T11:26:13.703 に答える
0

「php.ini」の最大ファイル サイズを増やすか、php.ini にアクセスできない場合は、Web ルートに「.htaccess」を作成します。

例 10MB:

 upload_max_filesize = 10M 
 post_max_size = 10M
于 2013-02-22T11:29:23.173 に答える
0

php.ini ファイルにアクセスできない場合は、関数 "ini_set" を使用します。

于 2013-02-22T21:51:01.763 に答える