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 ツールチップにクリック イベントを追加する詳細な説明

推薦する

MySQL 5.6 圧縮パッケージのインストール方法

MySQL には、msi インストールと zip 解凍の 2 つのインストール方法があります。 zi...

CSS の読み込みによってブロックが発生しますか?

おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...

SQL 文で OR と AND を混在させる場合のヒント

現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...

JavaScript タイピングゲーム

この記事では、タイピングゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...

Linux環境にDocker環境をインストールする(落とし穴なし)

目次インストールの前提条件ステップ1: システムの残りを確認してクリアし、Dockerの依存関係をイ...

Zabbix動的実行監視収集スクリプトの実装原理

Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...

ウェブデザインにおけるテキスト入力ボックスのパラメータの説明

<br />一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われていま...

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

Linux環境でglogログライブラリを使用する方法

Linuxライブラリを生成するLinux版はcentos7.3を使用し、コンパイルしてライブラリを生...

MySQL エラー番号 1129 の解決方法

SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...

Vueが学生管理機能を実装

この記事では、学生管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

MySQL Shell import_tableデータインポートの実装

目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...

フロントエンドに必要なNginx設定の詳細な説明

Nginx (エンジン x) は、軽量で高性能な HTTP およびリバース プロキシ サーバーであり...

K3s 入門ガイド - Docker で K3s を実行するための詳細なチュートリアル

k3dとは何ですか? k3d は、Docker で K3s クラスターを実行するための小さなプログ...

HTMLは角丸四角形を簡単に実装します

質問: div+css と配置を使用して角丸四角形を実現するにはどうすればよいですか?ソリューション...