この記事の例では、PHP+iFrame がページを更新せずに非同期ファイルのアップロードを実装する方法を説明しています。これは非常に実用的で一般的な手法です。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
iframe と言えば、現在ではそれを使用する人はますます少なくなり、AJAX が非常に優れているため、多くの人が AJAX に置き換えるべきだと考えています。
ただし、実装に iframe を選択する状況が 1 つあります。これは、この記事で取り上げているファイルの非同期アップロードです。興味がある場合は、ネイティブ AJAX を使用して実装してみてください。はるかに複雑です。
まずは初心者向けに基礎知識を補足しましょう:
1. iframe タグは通常、識別のために name 属性を指定します。
2. フォーム内のアクション (ターゲット アドレス) とターゲット (ターゲット ウィンドウ、デフォルトは _self) によって送信先を決定します。
3. フォーム内のターゲットを iframe の名前に指定すると、フォームを非表示のフレーム iframe に送信できます。
4. iframe 内のコンテンツは実際にはページであり、js の親オブジェクトは親ページ、つまり iframe が埋め込まれているページを参照します。
5. PHP の move_uploaded_file() 関数を使用して、ファイルのアップロードを実装します。$_FILES 配列には、アップロードされたファイルに関連する情報が格納されます。
この記事で実装するのは、ユーザーがアバター ファイルを選択し、すぐにアップロードしてページに表示する例です。簡単に言うと、アイデアは次のとおりです。
1. フォームに iframe を埋め込み、name 属性値を設定します。
2. ファイルのアップロードを選択するためのコントロールの値が変更されたときに js 関数をトリガーします。この関数はフォームを iframe に送信し、iframe に埋め込まれたページがファイルのアップロードの処理に使用されます。
3. iframe でのファイルのアップロードが完了したら、parent を使用して js で親ページを操作し、特定のタグで画像を表示し、画像の保存アドレスを隠しフィールドに割り当てます。
4. 元のページに戻ります。これでファイルのアップロードが完了し、ファイル パスが非表示フィールドに記録されます。
5. 最後に、ユーザーは元のページを送信するときにフォームのアクション属性とターゲット属性の値をリセットするだけで済みます。
以下はエフェクトと実装されたコードのスクリーンショットです:
upload.phpページは以下の通りです:
proceedupload.phpページは以下の通りです:
リーリー
興味のある友人は、この記事の例をテストして実行してみてください。この記事で説明されている内容は、すべての人が PHP プログラミングを学習する上で一定の参考になると思います。
http://www.bkjia.com/PHPjc/879725.html