PHP は APC を使用してファイルのアップロードの進行状況を取得します
今日、PHP の APC を使用すると、ファイルのアップロードの進行状況も取得できることを発見しました。この記事ではその方法を説明します。
APC をインストールしますまず、APC をインストールする方法は、インターネット上で多くの PHP モジュールを見つけることができます
phpinfo で、APC のデフォルト設定が次のとおりであることがわかります。設定項目 apc.rfc1867 を見てください:
http://cn2.php.net/manual/en/apc.configuration.php#ini.apc.rfc1867
このドキュメントには、次のようなファイルをアップロードすると記載されています。 POST の APC_UPLOAD_PROGRESS フィールドを指定すると、APC はこの値を使用して Upload_key キャッシュを自動的に作成します
この時点で、ユーザーは ajax を使用して再度呼び出すことができ、現在のファイル アップロード ステータスを取得できます
このステータスには以下が含まれます:
ファイルサイズ 現在アップロードされているファイルサイズ ファイルアップロード速度 (アップロード後にのみ利用可能) 実験: 1 rfc1867 設定項目をオンにしますapc.rfc1867=on
2 オンになっていることが phpinfo() で確認できます
3 php コードをサーバー
apc.php<?phpif($_FILES['file']['error'] == UPLOAD_ERR_OK){ $path = '/tmp/upload/'; $path .= basename($_FILES['file']['name']); if(move_uploaded_file($_FILES['file']['tmp_name'], $path)){ // upload successful echo 'sucess'; }}
http://10.16.15.118:7702/apc.php からアクセスできます
getprocess.php<?phpprint_r(apc_fetch("upload_6226f7cbe59e99a90b5cef6f94f966fd"));
ネットワーク経由でページにアクセスできることを確認してください
これは http://10.16.15.118 :7702/getprocess.php を介してアクセスできます
5 単純なクライアント HTML<html><body><form enctype="multipart/form-data" method="POST" action="http://10.16.15.118:7702/apc.php"><input type="hidden" name="APC_UPLOAD_PROGRESS" value="6226f7cbe59e99a90b5cef6f94f966fd"/><input type="file" name="file" /><input type="submit" value="submit" /></form></body></html>
注意が必要ですここで、APC_UPLOAD_PROCESS をアップロードするファイルの前に置く必要があること (これはドキュメントにも書かれています)。そうしないと、プロセスを取得できません
6 ファイルをアップロードして apc.php にアクセスします 7 getprocess.php を表示します次の質問は、中間の遷移状態が本当に存在するのかということです。 1. 大きなファイル (20M+) を見つけます。 2. nginx+php がファイル サイズを 20M を超えて制限していることを確認します。 3. 速度制限のために fidder を有効にします。
この記事に従ってください: http://donchevp.blogspot.com/2009/ 11/limiting-your-internet-connection-speed.html
ルールを設定します - 顧客 - このコードを設定します
if (m_SimulateModem) { // Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = "1"; // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = "150"; }
このリクエスト-トリクル遅延を変更します
次に、シミュレート モードをオンにします。
4 この 20M ファイルを a.html ページからアップロードします 5 getprocess.php を更新し続けます現在の進行状況を確認できます。アップロードが完了していない場合は、レート フィールドが利用できないことがわかります~~~soいいですね~~
参考記事:http://www.phppan.com/2012/04/php-upload-progress/
http://donchevp.blogspot.com/2009/11/limiting-your-internet-接続速度.html

ホット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)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

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

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

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