ホームページ >バックエンド開発 >PHPチュートリアル >大きなファイルをアップロードするクライアント

大きなファイルをアップロードするクライアント

WBOY
WBOYオリジナル
2016-06-23 14:38:38803ブラウズ

お聞きしたいのですが、ファイルのアップロードには何を使用しますか?大きなファイルをアップロードできる Web クライアントが必要です。FTP またはその他のプロトコルの場合は、アップロード完了後に http サーバーに通知できる必要があります。または、少なくともサーバーが事前ポスト イベントを持つことができる必要があります
アップロードするには、チャンクをサポートできる必要があります。HTML5 または Flash であることを望んでいます。解決策は、Java アプレットや javaFx を使用しないことです
有料であっても、aspera のように高価ではありません
最も重要なことは、できることです大きなファイルは100Gまでのファイルを指します

サーバー側の場合はphpスクリプトを使用するのが最善です
jqueryファイルのアップロードとpluploadを試しました


ディスカッション(解決策)への返信

実装には flash+php を使用することをお勧めします。サードパーティのライブラリがあります

実装には、flash+php を使用することをお勧めします。サードパーティのライブラリがあります

フラッシュの名前を詳しく教えてください。クライアント?

PHP+Flash 複数ファイルの非同期アップロード
サードパーティのクラス ライブラリ swfupload を参照できます。

実装するには、flash+php を使用することをお勧めします。アップロードされるファイルのサイズを自分で設定できるサードパーティのライブラリがあります。

アップロード サイズ制限は php.ini で設定されます

お聞きしたいのですが、ファイルのアップロードには何を使用しますか?大きなファイルをアップロードできる Web クライアントが必要です。FTP またはその他のプロトコルの場合は、アップロード完了後に http サーバーに通知できる必要があります。または、少なくともサーバーが事前ポスト イベントを持つことができる必要があります
アップロードするには、チャンクをサポートできる必要があります。HTML5 または Flash であることを望んでいます。解決策は、Java アプレットや javaFx を使用しないことです
有料であっても、aspera のように高価ではありません
最も重要なことは、できることです... Flash コントロールを使用して 100G のファイルをアップロードすることは不可能です。100G はおろか、100MB ですら。現在、インターネット上の無料の Flash コントロールはどれもブレークポイント アップロード機能をサポートしていないためです。また、MD5スキャン機能はありません。

お聞きしたいのですが、ファイルのアップロードには何を使用しますか?大きなファイルをアップロードできる Web クライアントが必要です。FTP またはその他のプロトコルの場合は、アップロード完了後に http サーバーに通知できる必要があります。または、少なくともサーバーが事前ポスト イベントを持つことができる必要があります
アップロードするには、チャンクをサポートできる必要があります。HTML5 または Flash であることを望んでいます。解決策は、Java アプレットや javaFx を使用しないことです
有料であっても、aspera のように高価ではありません
最も重要なことは、できることです... 従来の HTML 方式では、非常に大きなファイルをアップロードするニーズを満たすことができなくなりました。 100MB は言うまでもなく、50MB はサーバーにとって非常に大きいため、サービスは専用のソケット接続を開いてファイルがアップロードされるのを待つ必要があるだけでなく、ファイルを保存するために同じサイズのメモリを割り当てる必要があるため、かなりの負荷がかかります。ユーザー数が増加するにつれて、この圧力は幾何級数的に増加します。 Flash を使用する場合でも、現在の Flash はブレークポイント再開操作をサポートしておらず、Flash のアップロード原理も従来の HTML のアップロード原理と同じであるため、機能しません。 Flash を使用して 100MB の画像をアップロードするには、サーバーも 100MB のメモリを割り当てる必要があります。 10 人のユーザーが同時に 100MB のデータをアップロードすると、1G のサーバー メモリが消費されます。
Flash をアップロードすると、ファイル全体がメモリに追加されます。これは深刻な問題です。ユーザーが 5G ファイルをアップロードしたい場合、Flash はすべての 5G ファイルもメモリにロードするためです。これはユーザーの操作体験に重大な影響を与えます。なぜなら、この時点でユーザーのコンピュータは仮死状態になるからです。平均的なユーザーのコンピュータには 2G しか搭載されていないため、メモリ不足またはメモリ オーバーフローが原因で直接ハングします。

一部の友人は、Flash ファイル アップロード コントロールを使用して非常に大きなファイルをアップロードしようとしましたが、アップロード タイムアウトやアップロード エラーが頻繁に発生しました。これは、現在の Flash ファイル アップロード コントロールが従来の HTML アップロード方法と同じテクノロジーを依然として使用しているためです。サーバーが接続を開いて、クライアントがファイルの転送を完了するまで待ちます。ただし、実際のネットワーク環境では、ユーザーのネットワーク速度はわずか 50KB/S で、200MB のファイルをアップロードするのに 2.8 時間かかる場合があります。ただし、サーバーの SESSION 接続がユーザーのために 2.8 時間も待機することは不可能です。これは、パケット損失などの複雑なネットワーク環境を考慮していません。パケットロスやネットワーク異常が発生した場合、ユーザーの以前の 100MB ファイルが無駄に転送されてしまいます。これはユーザーの時間を 1 時間無駄にしていることに相当します。ユーザーに非常に劣悪なエクスペリエンスをもたらします。
サーバーの場合、接続リソースは非常に限られており、サーバーがユーザーを 2.8 時間待機できる場合でも、ユーザーが広いエリアにアクセスし、各ユーザーが接続を占有して長時間かかる場合、サーバーの同時処理能力は低下します。とても低くなってしまいました。他のユーザーが単純な 1KB の HTML ページをリクエストした場合でも、サーバーが前のユーザーのリクエストを処理するまで待たなければなりません。

同時に、Flash は非常に大きなファイルのアップロードのニーズを満たすことができません。非常に大きなファイルをアップロードする必要があるため、データ転送の安定性を確保することが要件の 1 つです。たとえば、ユーザーが 1G ファイルをアップロードし、既に 500MB をアップロードしたとします。このとき、ネットワークが突然切断されました。しかし、ユーザーは、次回ファイルをアップロードするとき、つまり最後にアップロードした位置から送信が開始されることを期待します。 、500MBの位置から送信が開始されます。1つの要件は、Flashではできないことです。

QQ メールボックスの特大添付ファイルのアップロード機能、115 Netdisk、Huawei Netdisk (DBank)、および Kingsoft Express の特大添付ファイルのアップロード コントロールと同様に、これらはすべてコントロールを使用して特大ファイルのアップロード機能を実装しています。これは主に、サーバーへの負荷を軽減し (サーバーの応答時間が速くなり、同時処理能力が強化されます)、サーバーのメモリを節約します (サーバーは各ユーザーのファイルと同じサイズのメモリを割り当てる必要がなくなります)。 、同時にユーザー エクスペリエンスも向上します (ユーザーはネットワーク環境で非常に大きなファイルをアップロードできます)。

もちろん、技術的な観点から、このような有名なインターネット企業は、多数のユーザーをサポートするための分散ファイル ストレージ アーキテクチャの設計も検討しています。ファイル ストレージ サーバーを 1 つにすることはできず、ユーザー数の増加に応じて動的に増加するためです。

一部の友人が言ったように、Flash コントロールが大きなファイルのアップロードの問題を解決できるのであれば、Tencent は QQ メールボックス専用のコントロールの開発にそれほど多くの労力を費やす必要はありません。

お聞きしたいのですが、ファイルのアップロードには何を使用しますか?大きなファイルをアップロードできる Web クライアントが必要です。FTP またはその他のプロトコルの場合は、アップロード完了後に http サーバーに通知できる必要があります。または、少なくともサーバーが事前ポスト イベントを持つことができる必要があります
アップロードするには、チャンクをサポートできる必要があります。HTML5 または Flash であることを望んでいます。解決策は、Java アプレットや javaFx を使用しないことです
有料であっても、aspera のように高価ではありません
最も重要なことは、できることです... インターネット上には、Web の大きなファイルのアップロード ブレークポイント再開コントロールがあります: http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html
このコントロールは、100G ファイルのブレークポイント再開操作をサポートしています。 、完全な開発ドキュメントを提供し、ファイル MD5 検証をサポートし、ファイルのバッチ アップロードをサポートします。
サポートされているブラウザ: Internet Explorer 6、Internet Explorer 7、Internet Explorer 8、Internet Explorer 9
Maxthon 1.x、Maxthon 2.x、TT ブラウザ、QQ ブラウザ、360 セキュア ブラウザ、
Chrome (Google ブラウザ)、Maxthon3 を確認してください。同じファイルが存在する場合

ファイルを再開

サーバーからファイルリストをロード

ファイルアップロード完了

フォルダーをアップロード
Discuz と統合
ページ呼び出しサンプルコード:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head>	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>    <link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>    <script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>    <script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>    <script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>    <script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>    <script language="javascript" type="text/javascript">    	var cbItemLast = null;    	var cbMgr = new CombinBoxMgr();    	$(document).ready(function()    	{    		cbMgr.LoadInControl("FilePanel");    		cbMgr.Init();    	});    </script></head><body>	<div id="FilePanel"></div></body></html>

リソースのダウンロード:
cab インストール パッケージ
crx インストール パッケージ
xpi インストール パッケージ
exe インストール パッケージ
開発ドキュメント
アップグレード ログ
ASP.NET (C#) サンプル コード:
ASP.NET-ACCESS の例
ASP.NET-SQL2005 の例
JSP の例コード:
JSP-ACCESS-GB2312 の例
JSP-ACCESS-UTF8 の例
JSP-SqlServer2005-UTF8 の例
JSP-MySQL-UTF8 の例
PHP の例 コード:
PHP-MySQL -UTF8 の例
Chrome、Firefox、IE ブレークポイントの再開コントロールの例 (次の例には、IE32、IE64、Firefox、Chrome プラットフォーム プラグインが統合されています)
ASP.NET-ACCESS の例
ASP.NET-SQL2005 の例
JSP サンプル コード:
JSP-ACCESS-GB2312 の例
JSP-ACCESS -UTF8 の例
JSP-SqlServer2005-UTF8 の例
JSP-MySQL-UTF8 の例
PHP サンプル コード:
PHP-MySQL-UTF8 の例

Chrome、Firefox、IE ブレークポイントの続き 転送制御の例 (次の例にはプラグインが統合されています) IE (x86)、IE (x64)、Firefox、および Chrome プラットフォームの場合)
ASP.NET-ACCESS の例
ASP.NET-SQL2005 の例
JSP-ACCESS-GB2312 の例
JSP-ACCESS -UTF8 の例
JSP-SQL2005- UTF8 の例
JSP-MySQL-UTF8 の例
PHP-MySQL-UTF8 の例


Xproer.HttpUploader5: http://www.cnblogs.com/xproer/archive/2012/10/26 /2741264.html
このコントロールはサポートしています100G ファイルの再開操作、完全な開発ドキュメントの提供、ファイル MD5 検証のサポート、ファイルのバッチ アップロードのサポート。
サポートされているブラウザ: Internet Explorer 6、Internet Explorer 7、Internet Explorer 8、Internet Explorer 9
Maxthon 1.x、Maxthon 2.x、TT ブラウザ、QQ ブラウザ、360 セキュア ブラウザ、
Chrome (Google ブラウザ)、
Maxthon3。開発ドキュメント
アップグレード ログ
ASP.NET (C#) サンプル コード:
ASP.NET-ACCESS サンプル
ASP.NET-SQL2005 サンプル
JSP サンプル コード:
JSP-ACCESS-GB2312 サンプル
JSP-ACCESS-UTF8 サンプル
JSP -SqlServer2005-UTF8 の例
JSP-MySQL-UTF8 の例
PHP サンプル コード:
PHP-MySQL-UTF8 の例
Chrome、Firefox、IE ブレークポイント再開制御の例 (次の例は、IE32、IE64、Firefox、Chrome プラットフォームと統合されています)プラグイン)
ASP.NET-ACCESS の例

ASP.NET-SQL2005 の例

JSP サンプルコード:
JSP-ACCESS-GB2312 の例
JSP-ACCESS-UTF8 の例
JSP-SqlServer2005-UTF8 の例
JSP-MySQL-UTF8例
PHP サンプル コード:
PHP-MySQL-UTF8 サンプル

Chrome、Firefox、および IE ブレークポイント再開制御の例 (次の例には、IE (x86)、IE (x64)、Firefox、および Chrome プラットフォーム用の統合プラグインが含まれています)
ASP.NET-ACCESS の例
ASP.NET-SQL2005 の例
JSP-ACCESS-GB2312 の例
JSP-ACCESS-UTF8 の例
JSP-MySQL-UTF8 の例
PHP-MySQL-UTF8 の例
いいですね、これはユーザーエクスペリエンスが良く、QQメールボックスの大規模な添付ファイルのアップロード機能と同じです。

Flash は非常に大きなファイルをアップロードできません。 10MB程度のファイルをアップロードする場合は問題ありません。

コレクション! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

上の階の人たちは野郎ですか?そうでない場合は、ありがとうございますが、この価格であれば、Aspera を購入するのに少しお金を追加してもよいでしょう

ここで、HTML5 ベースのチャンク アップロードの使用を検討できます。主流のブラウザ (Chrome と FF) では、file.slice オブジェクトにサイズ制限があるようです。ファインアップローダーの公式 Web サイトに記載されているのは、最大 4G であるということです。つまり、100G などは非現実的です。コントロールを使いたくないのですが、これがボトルネックになっているのかもしれません。ファイルの切り取りとアップロードをサポートしているのは、優れたアップローダーと plupload だけです。また、どちらも有料です。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。