ホームページ  >  記事  >  ウェブフロントエンド  >  H5 機能 FormData を利用して、更新せずにファイルをアップロードする

H5 機能 FormData を利用して、更新せずにファイルをアップロードする

亚连
亚连オリジナル
2018-05-24 17:20:102089ブラウズ

私の友人は以前、アップロードされたファイルは更新すべきではないと言いました。最も暴力的な解決策は、インターネット上でさまざまな 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(){
  $(&#39;#add&#39;).submit(function(){
    var data = new FormData($(&#39;#add&#39;)[]); 
    console.log(data);
    $.ajax({ 
      url: &#39;ajax.php&#39;, 
      type: &#39;POST&#39;, 
      data: data, 
      dataType: &#39;JSON&#39;, 
      cache: false, 
      processData: false, 
      contentType: false, 
      success:function(data){ 
        //alert(data);
        alert("UploadFile Success");
      }  
    }); 
    return false;  
  });
});
</script>
<form id=&#39;add&#39;>
<input type="text" name=&#39;book&#39;></input>
<input type="file" name=&#39;source&#39;></input>
<input type="submit">
</form>

内部のコードについては詳しく説明しません。コードの一行についてだけ話します

var data = new FormData($(&#39;#add&#39;)[0]);

FormData はフォーム オブジェクトであり、フォーム フィールドの key=>value を形成できます。フォームオブジェクトの。では、追加の key=>value を自分で結合する必要があるのでしょうか? 答えは「はい」です。詳細は Baidu FormData で確認できます。

そして、なぜ $('#add')[0] なのでしょうか?

js = jQuery[0]; としか言えません

PHP の部分

<?php 
  header(&#39;Content-Type:application/json; charset=utf-8&#39;);
  echo json_encode(array($_FILES,$_REQUEST));
?>

ここでテストしてください、 $_FILES に何かがあることが確認できれば、アップロードできることがわかります。

テストアップロード

ajax リクエストが ajax.php

に対して行われていることがわかります。

プレビューを見ると、$_FILES の返しに関する関連情報を確認できます。


上記は私があなたのためにまとめたものです。

関連記事:

さまざまなAJAXメソッドの使用方法の詳細な説明

djangoがajaxポストデータを使用する場合の403エラーを解決する方法

Ajaxリクエストに対するIEのキャッシュ問題の簡単な分析結果

以上がH5 機能 FormData を利用して、更新せずにファイルをアップロードするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。