


JS、PHP、Apacheを使用してビデオタイルをアップロードするときに、48MBを超えるファイルをアップロードできないという問題を解決する方法は?
ブレークスルー48MB制限:JS、PHP、Apacheビデオスライシングアップロードソリューション
小規模なプロジェクト開発では、大規模なファイルのアップロードを処理することは、しばしば課題に遭遇します。この記事では、JavaScript、PHP、およびApacheを使用してビデオスライスをアップロードする際の48MBのファイルサイズ制限を克服する方法を共有します。
問題:48MBアップロードボトルネック
このプロジェクトは、2GBファイル、スライスあたり1MB、最大2,000個のピースを理論的にサポートするスライスアップロードスキームを採用しています。ただし、実際のテストでは、48MB以上(約48個)をアップロードした後、その後のリクエストは500エラーを返します。スライスサイズが10MBにサイズ変更されている場合でも、問題は持続します。
コード分析と改善
JavaScriptコード:
元のコードでは、 FormData
オブジェクトは1回だけ初期化され、各リクエストがすべてのアップロードされたスライスデータを運ぶことになり、最終的にApacheのfcgidmaxrequestlen
制限を超えました。
改善されたJavaScriptコードは次のとおりです。重要なのは、各リクエストが送信される前にFormData
オブジェクトを再インにインストールすることです。
関数VideFileupload(){ const length = 1024 * 1024; // 1MB 開始= 0; 終了=開始長。 let blob_num = 1; is_stop = 0とします。 this.start = function(){ const file = files.files [0]; const blob = cutfile(file); sendfile(blob、file); blob_num; } // ...(コードの残りの部分は同じままです)... 関数sendfile(blob、file){ if(is_stop === 0){ const xhr = new xmlhttprequest(); const form_data = new formdata(); //キー:毎回formdataを復活させます const total_blob_num = math.ceil(file.size / length); form_data.append( 'file'、blob); form_data.append( 'blob_num'、blob_num); form_data.append( 'total_blob_num'、total_blob_num); form_data.append( 'file_name'、file.name); xhr.open( 'post'、 '/upload.php'、false); // ...(コードの残りの部分は同じままです)... } } // ...(コードの残りの部分は同じままです)... }
PHPコード:
PHPコードのファイルのマージロジックには、メモリ効率の問題がある場合があります。特大ファイルの場合、すべてのスライスを一度にメモリに読み込むことを避けるために、ストリーミングを推奨します。 (元のコードが明らかなメモリリークや効率の問題を提供しないため、PHPコードはここで省略されており、改善の焦点はJS側にあります)
ソリューションの概要
問題の中核は、JavaScriptコードのFormData
オブジェクトの再利用にあります。各リクエストの前にFormData
オブジェクトを復活させることにより、データの蓄積は回避され、48MBのアップロード制限が解かれます。 PHP側の場合、大きなファイルを処理するときにメモリの問題が発生した場合、ファイルのマージロジックをさらに最適化し、ストリーミング処理を採用する必要があります。この改善ソリューションは、大きなファイルアップロードの問題を効果的に解決し、ビデオスライスアップロードの安定性と信頼性を保証します。
以上がJS、PHP、Apacheを使用してビデオタイルをアップロードするときに、48MBを超えるファイルをアップロードできないという問題を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









H5プロジェクトを実行するには、次の手順が必要です。Webサーバー、node.js、開発ツールなどの必要なツールのインストール。開発環境の構築、プロジェクトフォルダーの作成、プロジェクトの初期化、コードの書き込み。開発サーバーを起動し、コマンドラインを使用してコマンドを実行します。ブラウザでプロジェクトをプレビューし、開発サーバーURLを入力します。プロジェクトの公開、コードの最適化、プロジェクトの展開、Webサーバーの構成のセットアップ。

サーバー側に文字エンコードを設定して、文字化けしたブートストラップテーブルを解決するには、次の手順に従う必要があります。サーバー文字のエンコーディングを確認します。サーバー構成ファイルを編集します。 EncodingをUTF-8に設定します。サーバーを保存して再起動します。エンコーディングを確認します。

ApacheでCGIディレクトリを設定するには、次の手順を実行する必要があります。「CGI-Bin」などのCGIディレクトリを作成し、Apacheの書き込み許可を付与します。 Apache構成ファイルに「Scriptalias」ディレクティブブロックを追加して、CGIディレクトリを「/cgi-bin」URLにマッピングします。 Apacheを再起動します。

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

この記事では、DebianシステムのOpenSSL構成を確認して、システムのセキュリティステータスをすばやく把握できるように、いくつかの方法を紹介します。 1.最初にOpenSSLバージョンを確認し、OpenSSLがインストールされているかどうかを確認し、バージョン情報を確認します。端末に次のコマンドを入力します。OpenSSlversionがインストールされていない場合、システムはエラーを促します。 2。構成ファイルを表示します。 OpenSSLのメイン構成ファイルは、通常/etc/ssl/openssl.cnfにあります。テキストエディター(Nanoなど)を使用して、次のように表示できます。sudonano/etc/ssl/openssl.cnfこのファイルには、キー、証明書、暗号化アルゴリズムなどの重要な構成情報が含まれています。 3。OPEを利用します

この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。
