2016-11-28 8 views
1

私はデータを保存するサーバーと同じサーバー上にないため、アプリケーションを開発しており、JavaScriptのメソッド 'jsonp'を使用して、& MYSQLサーバーとの間でデータの送受信を行います。jsonpを使ってサーバーに画像を送るにはどうすればいいですか?

jsonpと同じ方法( )を使用して画像を送信したり、バイナリなどを使用したりできますか?

+4

代わりにCORSを使用してください。 – SLaks

答えて

2

イメージをbase64でエンコードして文字列として送信できます。 @SLaksは、代わりにJSONPのエンドポイントのためCORSヘッダを使用することを検討して彼のコメントでを示唆した

var the_file = new Blob([window.atob(base_64_string)], { type: 'image/png', encoding: 'utf-8' }); 
var fr = new FileReader(); 
fr.onload = function (oFREvent) { 
    var v = oFREvent.target.result.split(',')[1]; 
    v = atob(v); 
    var good_b64 = btoa(decodeURIComponent(escape(v))); 
    img.src = "data:image/png;base64," + good_b64; 
    img.onload = function() { 
     //do stuff here 
    }; 
}; 
fr.readAsDataURL(the_file); 

として、必ずしも必要ではない:あなたはこれらの行をクライアント側に沿って何かをするだろう。

あなたのユースケースはわかりませんが、画像へのリンクを使用しないのはなぜですか?

+0

ありがとうございました。私が望んでいた答えです...しかし、私は複数のファイルをアップロードすると悪くなることがわかりました、ありがとう –

1

jsonpを使用してイメージをストリーミングすることはできません。

それとも、あなたのイメージベース64は、JSON文字列にあなたがサイズをファイルに限られるだろう画像を符号化する場合は、WebSocketを

を使用することができます。 次の2つの選択肢がiframe trickを使用しています。

関連する問題