2017-01-17 6 views
-1

生成された画像を読み込んでサーバーに送信します。createObjectURL()によって作成された画像を投稿します。

<img id="image" src="blob:null/31070c0f-23c0-44b0-945f-57ed1e623350"> 

このコードは画像を生成しました。

var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = function(){ 
    if (this.readyState == 4 && this.status == 200){ 

     var img = document.getElementById('image'); 
     var url = window.URL || window.webkitURL; 
     img.src = url.createObjectURL(this.response); // this one created the image. 

私はそれを投稿するためにデータを読んでいます。ファイル(作業ではない)に添付しようとしました。イメージからバイナリを読み込もうとしましたが、イメージはローカルBLOBです)、イメージのsrcをファイルに設定しようとしました(作業していません)

イメージのレンダリング方法です。私はそれをサーバーに送りたい。 This is how the image is rendered

私はいくつかの方法を試しましたが、答えられませんでした。 POSTを通して、あなたの画像を送信するために

答えて

0
var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = function(){ 
    if (this.readyState == 4 && this.status == 200){    

     var reader = new FileReader(); 

     reader.onload = function (e) { 
      var dataURL = reader.result; 
      $("#image").attr("src", dataURL); 

      alert($("#ImageTwo").attr("src")); 
     } 

     var read = reader.readAsDataURL(this.response); 

    } 
} 
xhr.open('GET', 'http://chart.apis.google.com/chart?cht=qr&chs=200x200&chl=http://www.cognation.net/profile'); 
xhr.responseType = 'blob'; 
xhr.send(); 
1

は、dataURIにブロブを変換FileReader
を使用しますが、あなたのケースでいるFormDataアプローチが好まれるべきに直接FormData API
のおかげでブロブを送信します。

キャンバスの使用に関する注記:画像をデコードし、別のアルゴリズムで再エンコードします。出力は同じ画像ではありません。

+0

今は問題があります。それを修正しようとすると、dataurlは空のイメージを生成します。 –

+0

キャンバスからイメージを作成できません。空白です。 imgタグから画像を送るファイルリーダーを私に見せることができますか? –

+0

@ARUNEdathadanは、xhrによって受け取られた 'blob'をとります(おそらくまだ' xhr.response'にありますが、あなたのアップロード機能と同じスコープで利用可能な変数に保存する方が安全でしょう)。そして、あなたが望むのはこの画像をアップロードすることですので、 'var form = new FormData(); form.append( 'file'、blob、 'filename.ext') '次にPOST xhrを作成し、' postXHR.send(form) 'を呼び出します。それをdataURIとして格納する必要がある場合は、変換サーバー側で行います。 – Kaiido

関連する問題