HTMLフォームには、ファイルをアップロードするための画像フィールドがあります。私は http://blog.teamtreehouse.com/reading-files-using-the-html5-filereader-api からチュートリアルを実行しましたが、ローカルディスクから画像ファイルをアップロードするときにうまく機能します。
しかし、画像のURLがあるとします http://www.google.com/images/logos/ps_logo2.png ローカルディスクからアップロードするのではなく、リモートURLからこの画像をアップロードしたいとします。
FileReader
APIは、ローカルディスクから画像をアップロードしようとするときにうまく機能しますが、URLを使用して画像をロードするにはどうすればよいですか?
base64
の画像を簡単に作成し、画像フィールドで<img src='data:image/png;base64,iAks4ds__base64__string' id='user_img'>
と設定してプレビューに使用するのは簡単ですが、jQueryまたはJavaScriptを使用してリモートURLから画像をアップロードするには、どのワークフローを採用する必要がありますか?
どうやって?助言がありますか?
FileReader
APIはローカルファイル専用です(cf http://www.html5rocks.com/en/tutorials/ file/dndfiles / )
リモートURLから画像をダウンロードし、そのデータをJavaScriptで抽出する場合は、Image
要素とCanvas
要素を使用できます。次の質問で説明します。 画像をJavaScriptのバイナリデータ
@ fiddler 回答によると、fileReaderはローカルファイル専用であり、リモートURLから画像などを取得する必要がある場合は、別のアプローチに従うことができます
1) Http Getリクエストを使用
2) キャンバス機能を使用
しかし、セキュリティ上の脅威により、ブラウザはスクリプトがOriginのクロスリクエストを実行することを許可していません。それを行うことができるのはDOM自体だけです。それは解決することができます
1)Cors(クロスオリジンリソースシェアリング) ?
2)Jsonp ?
今あなたはそう興味があります corsまたはjsonp
リモートのものが存在するサーバーにアクセスできる場合は、サーバー側のコア ? を実行できます。
しかし、リモートリソースを処理できるソリューションを探す質問として、corsプロキシ ? が役立ちます
無料のCORプロキシ