ホームページ >ウェブフロントエンド >jsチュートリアル >H5 機能 FormData を利用して、更新せずにファイルをアップロードする
私の友人は以前、アップロードされたファイルは更新すべきではないと言いました。最も暴力的な解決策は、インターネット上でさまざまな JS ライブラリを検索することです。このライブラリには、複数の画像のアップロード、プレビュー、さらには画像処理などの特殊効果が備わっています。以下に、H5 機能 FormData を使用して、更新せずにファイルをアップロードする方法を紹介します。これを見てみましょう
以前、私の友人が、更新せずにファイルをアップロードできると言いました。最も暴力的な解決策は、インターネット上でさまざまな JS ライブラリを検索することです。このライブラリには、複数の画像のアップロード、プレビュー、さらには画像処理などの特殊効果が備わっています。では、サードパーティのライブラリにアクセスしない場合、ajax を使用してそれを実行できるのでしょうか?この問題に関しては、誰かが与えた解決策は iframe を使用することですが、ここでは詳しく説明しません。しかし、HTML5 は優れた機能を備えており、FormData はパラメーターやファイル リソースを結合するのに役立ちます。このように、$.ajax を使用すると、更新せずに簡単にアップロードできます。もちろんiframeも必要ありません。
コード
以下はフロントエンド部分です。
<!DOCTYLE html> <meta charset=utf-> <head> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/../jquery.min.js"></script> </head> <script type="text/javascript"> $(function(){ $('#add').submit(function(){ var data = new FormData($('#add')[]); console.log(data); $.ajax({ url: 'ajax.php', type: 'POST', data: data, dataType: 'JSON', cache: false, processData: false, contentType: false, success:function(data){ //alert(data); alert("UploadFile Success"); } }); return false; }); }); </script> <form id='add'> <input type="text" name='book'></input> <input type="file" name='source'></input> <input type="submit"> </form>
内部のコードについては詳しく説明しません。コードの一行についてだけ話します
var data = new FormData($('#add')[0]);
FormData はフォーム オブジェクトであり、フォーム フィールドの key=>value を形成できます。フォームオブジェクトの。では、追加の key=>value を自分で結合する必要があるのでしょうか? 答えは「はい」です。詳細は Baidu FormData で確認できます。
そして、なぜ $('#add')[0] なのでしょうか?
js = jQuery[0]; としか言えません
PHP の部分
<?php header('Content-Type:application/json; charset=utf-8'); echo json_encode(array($_FILES,$_REQUEST)); ?>
ここでテストしてください、 $_FILES に何かがあることが確認できれば、アップロードできることがわかります。
テストアップロード
ajax リクエストが ajax.php
に対して行われていることがわかります。
プレビューを見ると、$_FILES の返しに関する関連情報を確認できます。
上記は私があなたのためにまとめたものです。
関連記事:
djangoがajaxポストデータを使用する場合の403エラーを解決する方法
Ajaxリクエストに対するIEのキャッシュ問題の簡単な分析結果
以上がH5 機能 FormData を利用して、更新せずにファイルをアップロードするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。