1

jQuery-File-Uploadプラグインを使用して、大きなファイルの単純なチャンク ファイル アップロードを実装しようとしています。GitHub リポジトリをフォルダーに複製main.jsし、次のように変更しました。

$('#fileupload').fileupload({
    maxChunkSize: 10000000,
    add: function (e, data) {
        var that = this;
        $.getJSON('server/php/', {file: data.files[0].name}, function (file) {
            data.uploadedBytes = file && file.size;
            $.blueimp.fileupload.prototype.options.add.call(that, e, data);
        });
    }
});

ドキュメントで説明されているように。これは 2GB までのファイルに対しては問題なく機能します (コンソールとサーバーでチャンクを確認できます) が、2.1GB を超えるファイルをアップロードしようとすると、次のことが起こります: データの最後のチャンクが正しく追加されます既存のファイルmyUpload.fileの場合、スクリプトは新しいファイルの書き込みを開始myUpload.file (1)し、最初から開始します。クライアント側とサーバー側の両方でエラーはスローされません。2 番目のファイルが 2.1GB のサイズに達すると、同じことが起こります。ファイルの進行状況カウンターはリセットされますが、全体的な進行状況カウンターはオーバーフローし、142% (および数えている) 完了したことがわかります。

サーバー側で PHP 5.3.5 を実行しています。

私はすでに の設定をいじってみましたがmax_post_size、プラグインのFAQとSO に関するこの質問upload_max_file_sizeで説明されているように、成功しませんでした。似ているように聞こえるこの問題も GitHub で見つけましたが、実際の入力なしでクローズされました。memory_limit

設定をいじる以外はphp.ini、これについてどうすればよいかわかりません。

4

1 に答える 1

2

サーバーの OS とファイルシステムがその大きなファイルをサポートしているかどうかを確認してください。非常に古い 32 ビット システムでは、2GB 以上で問題がありました。また、32 ビット フレームワークには、32 ビット符号付き整数として定義された内部カウンターがあるのではないかと思います。

これはコンピューターの基本からの単純な推測ですが、試してみる価値はあります

編集:これは、 jQuery-File-Upload、Apache、および PHP を使用した 4GB HTTP ファイルのアップロードを探しているものです

于 2012-11-30T16:48:43.557 に答える