非同期ファイルのアップロードを実装するための PHP ベースの AJAX テクノロジー_PHP チュートリアル
非同期ファイルのアップロードは頻繁に発生する問題であり、最新の AJAX 実装 Web アプリケーションでは解決する必要があります。ただし、AJAXの標準クラス(XmlHttpRequest)ではファイル転送の機能を実現できません。したがって、ここで説明するのは、AJAX テクノロジに基づいて非同期ファイル アップロード機能を構築する方法です。この機能では、ファイルを転送するために組み込みのフレームと (IFRAME) を使用する必要があります。この機能の効果は、ページがファイルをアップロードしているときに、ユーザーもそのページを使用してファイルの説明を入力できることです。
この例は、AJAX の古典的なケースを引用して分析されています。
システム環境
・ブラウザの新しいバージョン。たとえば、Opera、Firefox、Internet Explorer などです。
・PHP 4.3.0以降
・PHP 5バージョン
・PHPの「short_open_tag」オプションがオンになっています(そうしないと解析エラーが発生します)。
機能分析
組み込みの IFRAME (フレームワーク) を通じてファイルをアップロードします。 3 つの部分から構成されます。
・ページの中央に簡単なコントロールがあります。このフォームのターゲット リンクは非表示の IFRAME (CSS スタイル "display: none;" によって実装) であり、フォーム内の唯一のコントロールの OnChange イベントを使用して JavaScript 関数がトリガーされます。この機能の目的は、ユーザーが送信した拡張子を確認し、フォームを送信することです。
・サーバー側で処理プロセスをPHPで記述しました(FILEFRAMEでアノテーションを付けました)。このプロセスは、クライアントからアップロードされたファイルを確認し、サーバーに保存し、JavaScript コードの形式でユーザーに返すために使用されます。ユーザーに返される Javascript は、「parent.window.document」を介してユーザーが現在表示しているページを変更し、ファイル名を設定し、ユーザーがフォームを送信できるボタンを有効にします。ボタンを有効にする操作は、getElementById 関数を通じて実装されます。
・メインページにもフォームがあり、ユーザーが送信した説明と隠しファイル名が含まれています。ユーザーは、ファイルをアップロードするときにファイルの説明を入力できます。ファイルのアップロードが完了したら、ユーザーはボタンをクリックして、アップロード後にユーザーに返されたファイル情報を表示します。 (ファイル情報は、返されたファイル名とユーザーが入力した説明で構成されます)。
おそらく、この操作は不合理であると言うかもしれません。ユーザーが確認する前にファイルが送信されています。ユーザーが送信しない場合はどうなりますか。ユーザーが放棄したファイルは拡張機能内で自分で扱うことができます。
この例では、ファイル システム ディレクトリにファイルを保存します。このディレクトリ情報を含む特定の変数は、$upload_dir と $web_upload_dir です。スクリプトの実行を開始するときに、このディレクトリを構成する必要があります。ディレクトリが書き込み可能かどうかを確認するためのアクセス許可チェックがあります。
ここでは次のPHP関数を使用します:
· move_uploaded_file - サーバーにアップロードされたファイルを移動します
・ fopen - ファイルを開きます
・fwrite - コンテンツをファイルに書き込みます
・fclose - ファイルを閉じます
· str_replace - 文字列を置換します
· filesize - ファイルサイズを返します
· filemtime - 戻り処理時間
これらの機能の使用方法はマニュアルで確認できます。 HTM (<、>、&) タグを (<、>、&) に置き換えてください。
ソースコード
$upload_dir = "/var/www/anyexample/aeu" // ファイルが保存されているパス
;$web_upload_dir = "/aeu" // Webディレクトリ内のファイルのパス
;$tf = $upload_dir.'/'.md5(rand()).".test";
$f = @fopen($tf, "w");
if ($f == false)
die("致命的なエラー! {$upload_dir} は書き込み可能ではありません。「chmod 777 {$upload_dir}」を設定してください
またはこのようなもの");
fclose($f);
リンクを解除($tf);
//アップロードされたファイルを処理します
if (isset($_POST['fileframe']))
{
$result = 'エラー';
$result_msg = 'FILE フィールドが見つかりません';
if (isset($_FILES['file'])) // ブラウザからファイルを受け入れる
{
if ($_FILES['file']['error'] == UPLOAD_ERR_OK) // エラーなし
{
$filename = $_FILES['file']['name'] // ファイル名
;move_uploaded_file($_FILES['file']['tmp_name'], $upload_dir.'/'.$filename);
// 主な処理の流れ - $upload_dirにファイルを転送
$result = 'OK';
}
elseif ($_FILES['file']['error'] == UPLOAD_ERR_INI_SIZE)
$result_msg = 'アップロードされたファイルがphp.iniのupload_max_filesizeディレクティブを超えています';
その他
$result_msg = '不明なエラー';
}
エコー '';
エコー

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
