HTML での非同期ファイルアップロードの例

HTML での非同期ファイルアップロードの例

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

<form action="/hehe" method="post">
<input type="text" value="hehe"/>
<input type="submit" value="アップロード" id="アップロード"/>
</フォーム>


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

これは HTML で最も一般的でシンプルなフォーム送信方法ですが、この方法ではページを切り替える必要があります。同じページでサーバーとやり取りしたい場合があり、フォーム送信後に別のページに切り替えたくない場合があります。どうすればよいでしょうか? フォームを送信するには、いくつかの方法があります。
まず、迂回することで国を救う解決策を紹介します。上記のコードスニペットを変更する必要はありません。次のコードを追加するだけです。


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

<iframe id="uploadFrame" name="uploadFrame"></iframe>

そして、target=uploadFrame という形式で target 属性を追加します。target 属性は、iframe の id の値 (または name 属性の値。試してみるとわかります) と一致している必要があります。

簡単に説明すると、フォームは送信後に更新されますが、ページジャンプがないのはなぜでしょうか。それはiframeのせいです。実際にはiframe内で更新しましたが、iframeは空で、更新されていないのと同じです。非同期感があります。これはオーソドックスな方法ではありませんが、国を救うための回りくどい方法です。もちろん、この方法は多くの場合には適用できません。たとえば、フォームを送信した後、サーバーから何かを取得したいと考えています。この方法は明らかに実現可能ではありません。ここでも、真に非同期の送信フォームが必要です。

(II) jQuery非同期フォーム送信

ここでは、比較的簡単に使用できる jQuery フォーム送信プラグイン ajaxupload を紹介します。

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

<本文>
<form action="/hehe" method="post">
<input type="text" value="hehe"/>
<input type="button" value="アップロード" id="アップロード"/>
<!--<input type="button" value="send" onclick="send()"/>-->
</フォーム>
<スクリプト>
(関数(){
新しいAjaxUpload("#upload", {
アクション: '/hehe',
タイプ:"投稿",
データ: {}、
名前: 'テキストフィールド',
onSubmit: 関数(ファイル、ext) {
alert("アップロードに成功しました");
},
onComplete: 関数(ファイル、レスポンス) {
}
});
})();
</スクリプト>
</本文>

メインコードはここに掲載されています。ページのレンダリングが完了したら、自己実行関数を使用して、idがuploadのボタンに非同期アップロードイベントを追加します。new AjaxUpload(id, object)のidは、バインドされたオブジェクトのidに対応します。2番目のパラメータについては、dataは追加データ、nameは任意、onSubmit関数はファイルをアップロードする前のコールバック関数、最初のパラメータfileはファイル名、extはファイルサフィックス、onComplete関数はサーバーから返されたデータを処理できます。上記は、2 つの単純なファイルアップロード クライアントの実装です。

<<:  MySQL のスケジュールされた完全なデータベースバックアップ

>>:  Vue の echarts ツールチップにクリック イベントを追加する詳細な説明

推薦する

Firefox で Webdings フォントをサポートする方法

Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...

JavaScriptのスリープ関数の使用

目次1.スリープ機能2.タイムアウトを設定する3. 約束4. 非同期待機5. 1秒後に出力1、2秒後...

CentOS 7 は Hadoop 2.10 の高可用性 (HA) をビルドします

この記事では、CentOS 7 で高可用性 Hadoop 2.10 クラスターを構築する方法を紹介し...

JavaScript イベント委任の原則

目次1. イベント委任とは何ですか? 2. イベント委任の原則3. イベント委託の役割1. イベント...

MySQLのあいまいクエリインデックスの失敗の問題を解決するいくつかの方法

% ワイルドカードを使用すると、インデックス失敗の問題が発生することがよくあります。ここでは、lik...

Nginx+SSL による双方向認証を実装するためのサンプル コード

まずディレクトリを作成する cd /etc/nginx mkdir ssl cd ssl CA と自...

16 の XHTML1.0 と HTML の互換性ガイドラインの概要

1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...

MySQL で指定エンコーディングを実装する際の落とし穴について

前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...

HTML テーブルタグチュートリアル (27): セルの背景画像属性 BACKGROUND

セルの背景画像を設定でき、任意の GIF または JPEG 画像ファイルを使用できます。基本的な構文...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

type=fileファイル変更フォームの名前が正常にエコーされない問題を解決

easyui フレームワークのコードは次のとおりです。 css: .ファイルボックス{ フロート:...

Linux システムコマンドのメモ

この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...

高速レイアウトのための CSS ビューポート単位

CSS ビューポート ユニットはここ数年登場しており、時が経つにつれて、ますます多くの開発者が使用し...

MySQLはライブラリ内の主キーなしでテーブルインスタンスコードを素早く取得します

概要MySQL データベースで主キーのないテーブルを表示するための SQL ステートメントをいくつか...

Dockerfile を使用して Node.js サービスをデプロイする方法

Dockerfileを初期化するプロジェクトの名前が express であると仮定して、expres...