2016-05-01 15 views
0

私はサーバーを送信しています。私はjson配列で一連のデータを扱っています。私はそれを行うためにstringifyを使用しています。イメージなしで配列を送信すると、正常に送信されます。しかし、サーバーでは、Base64エンコーディングでイメージを送信する必要があります。base64で画像を正しくエンコードしていますか?

私は周りを少し読んで、キャンバスを使ってイメージをエンコードできることを知りました。しかし、私は500内部サーバーエラーコードを取得しています。私は文字列がbase64エンコーディングを送信していることを知っています。なぜなら、送信前にコンソールに文字列が出力されているからです。私が試したことの一つは、文字列の最初のいくつかの文字セットを取って、 "data:image png base64"や "data:image jpg base64"のようなものです。私はそれがコンソールにプリントするときに文字列から正しく取り出していることを知っています。私がそれを含めるか否かに関係なく、サーバーはまだ私にエラーを送信します。

途中でajaxで文字列を送信しています。だからここに私がコードをbase64に変更するコードがあります。以下はそのコードのスニペットです:

$(function() 
{ 

    var file = document.getElementById("image_load").src; 
    var draw = document.getElementById("image_load"); 
    var canvas = document.getElementById("canvas"); 
    var ctx = canvas.getContext("2d"); 
    ctx.drawImage(draw, 0, 0); 
    var picture= canvas.toDataURL(); 
    //picture = picture.replace(/^data:image\/(png|jpg);/, ""); 
    //picture = picture.replace(/^data:image\/(png|jpg);base64,/, ""); 
    //the first removes everything but base64 from the beggining of the string 



}); 



//500 (Internal Server Error) 

//data:image/png;base64, 

これは参考になる場合があります。

答えて

1

500内部サーバーエラーコード」 - サーバー側のエラーです。だから、あなたのサーバー側で問題を探しているはずです。受信スクリプトはおそらく異なるjson形式であなたのデータを期待しています。

+0

私はあなたがまだ正しいかもしれないが、base64でエンコードするように言われている。 – munchschair

+0

*サーバーを送信しています... json配列のデータセット* - サーバーが予期している形式と正確な形式でパラメーターを送信していますか?すでに述べたように、 '500'エラーはサーバー側エラーです。したがって、期待される形式でデータを送信しない限り、フロントエンドで行うことはできません。 – Uzbekjon

+0

よろしくお願いいたします。私はサーバーの人々と話をします。私はちょうど私が正しくデータを符号化しているのだろうかと思った。 – munchschair

関連する問題