无法使用角度js将base 64 Image数据发送到服务器

时间:2016-02-19 12:11:50

标签: javascript angularjs image base64 http-status-code-400

我正在尝试使用$ http Post请求将Base64图像数据发送到服务器,它适用于较低分辨率的图像(高达100KB)但不适用于更高分辨率的图像(尝试6MB文件)。

获取错误:400错误请求。

    $http({url:ServerURL,method: "POST",
            params: {imageData:base64_imgData}
    }).then(function(response) {
      console.log(response.data);
      console.log(response.status);
    },function(response) {
       console.log(response.data);
       console.log(response.status);
    });

请帮助解决这个问题。

2 个答案:

答案 0 :(得分:0)

将基础64分成多个部分(根据您的标准确定大小,使用您自行决定数字部分)并对最初创建的对象进行更新,如果您希望使用基本64样式的发送数据。另外请参考以下文件上传的一些角度模块:

http://ngmodules.org/modules/angular-file-upload

如果是JAVA Rest API,我会立即推荐多部分表单数据文件上传机制。如果您还需要更多信息,请与我们联系。

答案 1 :(得分:0)

谢谢Jay的回答,你的回答帮助了我。

使用Jquery Ajax请求解决了问题

$.ajax({
   type: "POST",
   url: ServerURL,
   data: { 
         imageData:base64_imgData
   },
   cache: false,
   contentType: "application/x-www-form-urlencoded",
   success: function (result) {
       console.log("Success");
   }
});

我认为不建议将大型64图像数据发送到服务器用于大尺寸图像,这是耗尽内存的一种非常好的方法。最好使用文件并发送文件。