28

PHP でアップロード ページを作成しましたが、ページが 500 MB を超えるドキュメントをアップロードしない理由がわかりません。これほど大きなものをアップロードしようとするのはこれが初めてで、PHP.INI のすべての構成を変更しました (post_max_size = 700M 、upload_max_filesize = 600M、および max_execution_time = 300)。アップロード用のコードは以下のとおりです

if(isset($_FILES['upload']) && !empty($_FILES['upload']['name'])){
 move_uploaded_file($_FILES['upload']['tmp_name'], $this->filePath.$this->fileName);
}

助けが必要です。何かが正しく行われていないのではないかと思います..

4

3 に答える 3

12

構成により、PHP は特定のサイズまでのファイルのみをアップロードできます。この制限を変更する方法を説明する記事がウェブ上にたくさんあります。以下にそれらのいくつかを示します。

たとえば、php.iniファイルを編集して次のように設定できます。

memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M

その後、apache を再起動する必要があります。

注:
そうは言っても、そのような大きなファイルのアップロードはあまり信頼できません。エラーが発生する可能性があります。ファイルを分割し、エラー修正用の追加データを含めることができます。これを行う 1 つの方法は、par recovery filesを使用することです。Unix 系のシステムでは、parコマンド ライン ユーティリティを使用して、アップロード後にファイルを確認できます。

于 2013-04-19T10:46:11.880 に答える
0

HTTP経由でファイルを転送することを意味していると思います。FTP ほど悪くはありませんが、問題を解決する別の方法を見つけることができれば、それは良い考えではありません。HTTP (およびコンポーネント プログラム) は、インターネット上で比較的小さなファイルを転送するように最適化されています。

このプロトコルはサーバーからクライアントへの範囲要求をサポートしていますが、逆の操作は許可されていません。いずれかの側のソフトウェアがボリュームの影響を受けていない場合でも、プッシュするデータが多いほど、接続が失われる可能性がある間隔が長くなります。しかし、最大の問題は、最後の文の警告です。

于 2013-04-19T10:52:47.253 に答える