window.URL.createObjectURL 文件上传

通过window.URL.createObjectURL()方法生成的资源URL
bdFile="Blob:http...3a%/asdasd89090786" 这种。
能够使用Java: File file2 = new File(bdFile);创建文件吗,
还是使用new FileInputStream(bdFile) 建立输入流.
嗯,问题就是怎么通过这种url 上传文件,对这样的url使用不太了解。

我也碰到同样的问题,请问您解决了吗?

我也遇到了同样的问题。。。求解决方案

同求,博主找到解决方案了没啊?

var img=new Img;
img.src='blob:http://localhost:31431/c669b20c'
img.onload=function(){
 var url="http://p1.pstatp.com/large/435d000085555bd8de10";
getBase64(url)
.then(function(base64){
console.log(base64);//处理成功打印在控制台
//在这里调用后台代码,可以用ajax
},function(err){
console.log(err);//打印异常信息
});

}

//传入图片路径,返回base64
function getBase64(img){
    function getBase64Image(img,width,height) {//width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小
      var canvas = document.createElement("canvas");
      canvas.width = width ? width : img.width;
      canvas.height = height ? height : img.height;

      var ctx = canvas.getContext("2d");
      ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
      var dataURL = canvas.toDataURL();
      return dataURL;
    }
    var image = new Image();
    image.crossOrigin = '';
    image.src = img;
    var deferred=$.Deferred();
    if(img){
      image.onload =function (){
        deferred.resolve(getBase64Image(image));//将base64传给done上传处理
      }
      return deferred.promise();//问题要让onload完成后再return sessionStorage['imgTest']
    }
  }

        后台用String接收这个base64的数据,然后用一个工具类转化成MultipartFile对象,接下来的操作就和直接传文件是一样的了:
        public static MultipartFile base64ToMultipart(String base64) {
try {
    String[] baseStrs = base64.split(",");

    BASE64Decoder decoder = new BASE64Decoder();
    byte[] b = new byte[0];
    b = decoder.decodeBuffer(baseStrs[1]);

    for(int i = 0; i < b.length; ++i) {
        if (b[i] < 0) {
            b[i] += 256;
        }
    }

    return new BASE64DecodedMultipartFile(b, baseStrs[0]);
} catch (IOException e) {
    e.printStackTrace();
    return null;
}

}