目次
ディスカッションへの返信(解決策)
ホームページ バックエンド開発 PHPチュートリアル PHP アップロード ブレークポイントの再開

PHP アップロード ブレークポイントの再開

Jun 23, 2016 pm 02:12 PM

コントロールを使用せずに、フラッシュだけで実現できるようですか?


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

もちろんです。 PHPはサポートしていないのでしょうか?

コントロールを使用しない場合は、Flashのみを使用できるようですか? 基本的に、コントロールなしで実装することは困難です。 QQ メールボックス、Baidu Netdisk、DBank (Huawei Netdisk)、115 Netdisk、および 360 Netdisk の大きな添付ファイルのアップロード機能を確認してください。ブレークポイント再開機能はすべて自社開発のコントロールによって実装されています。それを実現するために Flash を使用するのではなく。

コントロールを使わずに、フラッシュだけで実現できるようですか? 実際のネットワーク環境では、通常、コントロールを使用して約 30MB のファイルを実現する必要があります。それは、国内のネットワーク環境が不安定であることと、サーバーの負荷が原因であることが考えられます。
一般に、当社のウェブサイトユーザーの中には、チャイナテレコムのネットワークを使用する人、チャイナユニコムのネットワークを使用する人、教育ネットワークを使用する人、南部にいる人、北部にいる人がいる可能性があり、この複雑なネットワーク環境によりウェブサイトにアクセスすることがあります。速度が異なります。たとえば、テレコム ユーザーがテレコムのコンピュータ ルームにアクセスする場合、大きなファイルを問題なくアップロードできる人もいます。ただし、チャイナユニコムからチャイナテレコムのコンピュータ室へのアクセスが遅くなる場合があり、大きなファイルをアップロードする際にアップロードのタイムアウトや切断などの問題が発生する可能性があります。

サーバー負荷の問題に関しては、現在の通常のファイルアップロード技術では依然としてサーバーに大きな負荷がかかります。通常の HTML で 1G ファイルをアップロードするには、サーバーは最初に 1G のメモリを割り当て、次に長い接続を開き、クライアントがアップロードを完了するのを待つ必要があります。この期間中に、他のユーザーも 1G ファイルをアップロードしたい場合、サーバーはさらに 1G のメモリを割り当てます。ユーザーが多すぎると、サーバーが問題を処理できなくなることが考えられます。 swfupload やその他の Flash コントロールなどの Flash を使用する場合でも、使用されるテクノロジは通常の HTML と同じです。

Tencent はこの問題を検討しており、コントロールを使用してこの問題を解決しています。このコントロールを使用して、1G などの大きなファイルを多数の小さな部分 (それぞれの小さな部分は約 128 KB) に分割し、アップロードが完了するまでループしてアップロードします。この利点は、サーバーへの負荷が軽減され、サーバーの負荷容量が向上し、サーバーがより多くのユーザー要求を処理できるようになることです。コストも節約できます。

コントロールを使用せずに、フラッシュだけで実現できるようですか? 従来の 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 メールボックス専用のコントロールの開発にそれほど多くの労力を費やす必要はありません。

コントロールを使わずに、フラッシュだけで実現できるようですか? PHP または Flash を使用してブレークポイント再開転送を実装する場合の最大の問題は、一度に 1GB のデータを Web サーバーに転送する方法です。 Flash はセキュリティの問題により、非常に大きなファイルの処理パフォーマンスに大きな問題を抱えています。

Flash もコントロールのカテゴリに属します
再開可能なアップロードは、再開可能なダウンロードよりも実装が簡単です

再開可能な限り、それは双方の問題であり、両端がそれをサポートする必要があります

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

See all articles