2013-10-31 41 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' –