2013-03-11 94 views
0

我失去了一些東西,但我不知道它可能是什麼...拖放文件與JavaScript不工作

我想推一拖放文件的基地64碼的版本變成文本區域...但由於某種原因,它不工作...

任何人都在意告訴我在哪裏我錯了代碼?這對我來說是一個新的領域......

$(document).ready(function() { 

    function processFile(file){ 
     var o = $("#fileInfo"); 
     var reader = new FileReader(); 
     reader.onload = function(e) { 
     o.innerHTML = e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;"); 
     } 
     reader.readAsURL(file); 
    } 

    // Sets up dataTransfer event 
    jQuery.event.props.push('dataTransfer'); 

    // Bind drop to drop zone 
    $('#drop-files').bind('drop', function(e) { 
     // Prevents element from default function 
     e.preventDefault(); 
     // Grabs list of files 
     var files = e.dataTransfer.files; 
     // Loop through files... 
     $.each(files, function(index, file) { 
      processFile(files[index]); 
     }); 
    }); 
}); 

我嚴重不知道,我已經搞砸了......最終我將力推這對我自己選擇的上傳頁面...但現在我想至少獲得第一個文件的Base64代碼以顯示在該文本區域(「fileInfo」)中。

欣賞任何想法在這裏...

回答

2

o代表jQuery對象,你不能訪問它DOM對象屬性innerHTML。請致電html()o或撥打DOM對象使用indexer

變化

o.innerHTML = e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;"); 

o.html(e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;");) 

o[0].innerHTML = e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;"); 
+0

我應該注意到早些時候...但現在我已經實現了我得到的錯誤:「 reader.readAsURL「不是一個函數...我假設readAsURL是一個使用Firefox的可用函數? – 2013-03-11 23:00:16

0

我只是想出出了什麼事......

行:

reader.readAsURL(file); 

應改爲:

reader.readAsURLData(file); 

搖頭

但現在我已經發現了另一個小問題,我將在稍後發佈...

感謝你的努力...