: 開発中、Android WebView はデフォルトでファイル選択を呼び出してカメラで写真を撮ることができません (iOS や他のブラウザなどの他のデバイスにはこの問題はありません)。Android に問い合わせる必要があります。開発学生はコードを調整します。 (2) 画像をクリックして選択した後、ページ上に画像を表示するにはどうすればよいですか?おそらく多くの開発者は this.value を直接取得しますが、これは間違っており、実現不可能です。利用可能な API が 2 つあり、新しい F"/> : 開発中、Android WebView はデフォルトでファイル選択を呼び出してカメラで写真を撮ることができません (iOS や他のブラウザなどの他のデバイスにはこの問題はありません)。Android に問い合わせる必要があります。開発学生はコードを調整します。 (2) 画像をクリックして選択した後、ページ上に画像を表示するにはどうすればよいですか?おそらく多くの開発者は this.value を直接取得しますが、これは間違っており、実現不可能です。利用可能な API が 2 つあり、新しい F">

ホームページ  >  記事  >  ウェブフロントエンド  >  AndroidでのHTML5画像アップロード例を詳しく解説

AndroidでのHTML5画像アップロード例を詳しく解説

零下一度
零下一度オリジナル
2017-06-26 13:31:272320ブラウズ

アプリケーションプラットフォーム環境: Android Webビュー;

関連する技術的ポイント:

(1) : 開発中、Android Webビューはデフォルトでファイル選択とカメラ写真を呼び出すことができません(iOSなどの他のブラウザ)デバイスにはこの問題はありません)、Android 開発の学生にコードを調整するように依頼する必要があります

(2) 画像をクリックして選択した後にページに画像を表示するにはどうすればよいですか。おそらく多くの開発者は this.value を直接取得しますが、これは間違っており、実現不可能です。実装できる API は new FileReader と window.URL.createObjectURL (最適) の 2 つです

new FileReader は次のように実装されます:

 
 upload

実際の Android WebView では、読み書き速度が非常に遅いため、推奨されません

//-------------------------------------- -------------------------------------------------- -

window.URL.createObjectURL は次のように実装されます:

<input type="file" name="" id="j-file">
 <img src="" id=&#39;j-img&#39; alt="" width="100%">
 <button id=&#39;j-btn&#39;>upload</button>
 <script type="text/javascript">
  var o_file = document.getElementById('j-file'),
      o_btn = document.getElementById('j-btn'),
      o_img = document.getElementById('j-img');

  o_file.addEventListener('change',function(event){      var file = event.target.files[0];      if(!file) return;      var url = window.URL.createObjectURL(file);      if(/image/.test(file.type)){
          o_img.setAttribute('src',url);
      }else{
          console.log('请选择图片');
      }
  },false);

  o_btn.onclick = function(){      var data = new FormData();
      data.append('file_a',o_file.files[0]);
      data.append('text','test');
        console.log(data);
  } </script>

このテクノロジーの利点は、ファイルのコンテンツを JavaScript に読み取る必要がなく、ファイルのコンテンツを直接使用できることです。これは非常に高速です

(3 ) XHR オブジェクトを介して画像データをサーバーに渡すにはどうすればよいですか? new FormData() は、フォームをシリアル化し、フォームと同じ形式でデータを作成するための実装を提供します (XHR 送信)。FormData は、xhr オブジェクトにリクエスト ヘッダーを明示的に設定する必要はありません (フォーム内の画像アップロードの場合、 enctype は multipart/form -data を設定する必要があります)、XHR はデータをカスタマイズするためにインスタンス メソッド .append(key, value) を自動的に識別できます

完全なコード例は次のとおりです。

以上がAndroidでのHTML5画像アップロード例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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