2013-10-31 40 views
1

我试图拆分输入文件的对象,但不工作
jQuery的分割功能不能正常工作

脚本

$('#imageUpload').change(function(){    
    readImgUrlAndPreview(this); 
    function readImgUrlAndPreview(input){ 
     if (input.files && input.files[0]) { 
      var reader = new FileReader(); 
      reader.onload = function (e) { 
        var src_img = []; 
        src_img=$('#imageUpload')[0];       
        var comImgObj=dataURItoBlob(src_img); 
        $('#imagePreview').attr('src', e.target.result); 
      }; 
      reader.readAsDataURL(input.files[0]); 
     } 
     else { 
     var img = input.value; 
     $('#imagePreview').attr('src',img); 
     } 
    } 
}); 

function dataURItoBlob(dataURI) { 
     var binary = atob(dataURI.split(',')[1]); 
      var array = []; 
      for(var i = 0; i < binary.length; i++) { 
       array.push(binary.charCodeAt(i)); 
      } 
      return new Blob([new Uint8Array(array)], {type: 'image/jpeg'}); 

}  

Jsfiddle
我收到此错误

Uncaught TypeError: Object # has no method 'split'

+0

传递给dataURItoBlob()的dataURI参数应该是字符串。 – OzrenTkalcecKrznaric

+0

**'src_img'**是一个元素。您必须在选择字段中传递选定的值。 –

+3

jQuery没有_.split()_方法 - 您正在考虑Javascript String _.split()_方法,它奇怪地适用于字符串,而不是像_src_img_这样的DOM元素。 – nnnnnn

回答

-1

如果有问题,尝试使用另一种方法:

dataURI= dataURI.substring(dataURI.indexOf('_') + 1); 

我认为这将做你想要的工作。

+0

我得到这个错误对象#没有方法'indexOf' –