ホームページ > php教程 > php手册 > PHP ファイルアップロードプログレスバーの 2 つの実装メソッドのコード

PHP ファイルアップロードプログレスバーの 2 つの実装メソッドのコード

WBOY
リリース: 2016-06-13 12:30:45
オリジナル
879 人が閲覧しました

現在私が知っている方法は 2 つあります。1 つは PHP の創設者である Rasmus Lerdorf によって作成された APC 拡張モジュールを使用する方法です (http://pecl.php.net/package/apc)。 PECL 拡張機能。uploadprogress モジュールの実装 (http://pecl.php.net/package/uploadprogress) 参考として、個別の実装の例を 2 つ示します。より柔軟なアプリケーションの場合は、必要に応じて変更できます。

APC 実装方法:

APC をインストールします。インストールについては公式ドキュメントを参照してください。PECL モジュールのインストール方法を使用すると、ここでは説明していませんが、迅速かつ簡単に行うことができます
php.ini を設定しますパラメータを設定します。 apc.rfc1867= 1. APC がアップロード プログレス バー機能をサポートできるようにします。APC ソース コードのドキュメントに手順があります。
コード例:

コードをコピーします。 コードは次のとおりです。


if ($_SERVER['REQUEST_METHOD'] == 'POST') { //アップロード リクエスト
$status = apc_fetch(' Upload_' . $_POST['APC_UPLOAD_PROGRESS']);
$status['done'] = 1; // クライアント ページの ajax 呼び出しに出力します。自分自身をドキュメント化します
exit;
} elseif (isset( $_GET['progress_key'])) { //アップロードの進行状況を読み取ります
$status = apc_fetch('upload_'.$_GET['progress_key']) ;
echo json_encode($status);
exit;
} else {
//その他のコード (アップロード フォームなど)


Uploadprogress モジュールの実装方法:


PECL モジュールのインストール方法を使用してインストールします。このモジュールの
php.ini に、uploadprogress.file.filename_template = “/tmp/upd_%s.txt” を設定します。
コード例:


コードをコピー コードは次のとおりです:

if ($_SERVER['REQUEST_METHOD']=='POST) ') {

if (is_uploaded_file($_FILES['upfile']['tmp_name']) ) {
$upload_dir = 'your_path/'
$ext = strrchr($_FILES['video'; ]['name'], '.');
$sessid = $_POST['U​​PLOAD_ID ENTIFIER '] ;
$tmpfile = $sessid ; .$ext;
if (move_uploaded_file($_FILES['upfile'] ['tmp_name'], $tmpfile)) {
>} elseif (!empty( $_GET['sessid'])) {
header("有効期限: 1997 年 7 月 26 日月曜日 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header("キャッシュ制御: ストアなし、キャッシュなし、必須再検証");
ヘッダー("キャッシュ制御: post -check=0、pre-check=0"、false) );
header("Pragma: no-cache");
header("Content-Type:text/html;charset=UTF-8") ;

$unique_id = $_GET[ 'sessid'];
$uploadvalues = Uploadprogress_get_info($unique_id);

if (is_array($uploadvalues)) {
echo json_encode ($uploadvalues);
} //進行状況の読み取りに失敗しました。追加の処理ロジック
}

} else {
} //アップロード フォームを表示します
}


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート