2016-09-19 9 views
0

はどういうわけか、私はカメラを通してキャンバスの画像をキャプチャし、サーバーが今、私はここで問題に言及する前に、PNGファイルとして保存することができますので、サーバーにそれはcanvas.toDataURL()だお送りしていますが、私のコードです:javaサーブレットでキャンバス `toDataURL()`を受け取る方法は?

var dataURL = canvas.toDataURL("image/png"); 
    formdata = dataURL.replace(/^data:image\/(png|jpg);base64,/, ""); 
    alert(formdata); 
    $.ajax({ 
     url: '../canvasdopost', 
     type: 'POST', 
     data: formdata, 
     processData: false, 
     contentType: false, 
     success: function(data){ 

     } 
    }); 

はサーバー:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    Part part = request.getPart("canvasdata"); 
     BufferedReader br = new BufferedReader(new InputStreamReader(part.getInputStream(), 
      Charset.forName("utf-8"))); 
     String sImg = br.readLine(); 
     System.out.print(sImg); 
} 

サーバーコンソール出力:

java.lang.IllegalStateException:なしマルチパート構成として部品を処理できませんが提供されていますorg.apache.catalina.connector.Request.parsePartsで (Request.java:2733)

私も試してみました:

String test = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); 
System.out.print(test); 

今の問題は、私は出力に私のサーバーのコンソールを取得することはありませんということですデータを送信する前にクライアントのアラートボックスに表示されるもの。それらのための

そして感​​謝も、実際の画像ファイルだけで、同じ問題に直面している人のための

答えて

0

に受信base64でデータを保存する方法を教えて誰

このよう

シンプル:

サーバー:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String test = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); 
    System.out.print(test); 
    byte[] bImg64 = test.getBytes(); 
    byte[] bImg = Base64.decodeBase64(bImg64); // apache-commons-codec 
    FileOutputStream fos = new FileOutputStream("D:\\img.png"); 
    fos.write(bImg); 
    fos.close(); 
} 

クライアント:

var dataURL = canvas.toDataURL("image/png"); 
formdata = dataURL.replace(/^data:image\/(png|jpg);base64,/, ""); 
$.ajax({ 
    url: '../signupcanvasdopost', 
    type: 'POST', 
    data: formdata, 
    processData: false, 
    contentType: "text/html", 
    success: function(data){ 

    } 
}); 
関連する問題