ブレークスルー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 サイトの他の関連記事を参照してください。

本文给大家介绍如何安装apache2.4,以及如何配置php8.0,文中附有图文详细步骤,下面就带大家一起看看怎么安装配置apache2.4+php8.0吧~

mod_limitipconn,这个是apache的一个非官方模块,根据同一个来源ip进行并发连接控制,bw_mod,它可以根据来源ip进行带宽限制,它们都是apache的第三方模块。1.下载:wgetwget2.安装#tar-zxvfmod_limitipconn-0.22.tar.gz#cdmod_limitipconn-0.22#vimakefile修改:apxs=“/usr/local/apache2/bin/apxs”#这里是自己apache的apxs路径,加载模块或者#/usr/lo

查看apache版本的步骤:1、进入cmd命令窗口;2、使用cd命令切换到Apache的bin目录下,语法“cd bin目录路径”;3、执行“httpd -v”命令来查询版本信息,在输出结果中即可查看apache版本号。

本篇文章给大家带来了关于PHP的相关知识,其中主要跟大家分享在Ubuntu20.04 LTS环境下安装Apache的全过程,并且针对其中可能出现的一些坑也会提供解决方案,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

1.Nginx和tomcat的区别nginx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让javawebapp泡在里面的东西。严格意义上来讲,Apache和nginx应该叫做HTTPServer,而tomcat是一个ApplicationServer是一个Servlet/JSO应用的容器。客户端通过HTTPServer访问服务器上存储的资源(HTML文件,图片文件等),HTTPServer是中只是把服务器

在使用 PHP 进行网站开发时,你可能会遇到字符编码问题。特别是在使用不同的 Web 服务器时,会发现 IIS 和 Apache 处理字符编码的方法不同。当你使用 IIS 时,可能会发现在使用 UTF-8 编码时出现了乱码现象;而在使用 Apache 时,一切正常,没有出现任何问题。这种情况应该怎么解决呢?

Pacemaker是适用于类Linux操作系统的高可用性集群软件。Pacemaker被称为“集群资源管理器”,它通过在集群节点之间进行资源故障转移来提供集群资源的最大可用性。Pacemaker使用Corosync进行集群组件之间的心跳和内部通信,Corosync还负责集群中的投票选举(Quorum)。先决条件在我们开始之前,请确保你拥有以下内容:两台RHEL9/8服务器RedHat订阅或本地配置的仓库通过SSH访问两台服务器root或sudo权限互联网连接实验室详情:服务器1:node1.exa

快速查看服务器软件的编译参数:1、nginx编译参数:your_nginx_dir/sbin/nginx-v2、apache编译参数:catyour_apache_dir/build/config.nice3、php编译参数:your_php_dir/bin/php-i|grepconfigure4、mysql编译参数:catyour_mysql_dir/bin/mysqlbug|grepconfigure以下是完整的实操例子:查看获取nginx的编译参数:[root@www~]#/usr/lo


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Dreamweaver Mac版
ビジュアル Web 開発ツール

ホットトピック



