2013-02-22 24 views
1
  • 我在本地機器中有一個文本文件。
  • 而我在jsp頁面有一個按鈕。
  • 點擊按鈕,我需要獲取文本文件的內容。
  • 該文件有n個內容。

任何人都可以給我的JavaScript函數來實現這一點。使用javascript從文本文件讀取值

+0

爲什麼javacript你的意思可能是java – CloudyMarble 2013-02-22 08:39:32

+0

這個問題相關的http://stackoverflow.com/questions/4950567/reading-client-side-text-file-using-javascript – snowp 2013-02-22 08:39:51

+0

不是java代碼...我需要它的JavaScript函數... – Rachel 2013-02-22 08:43:12

回答

1

您應該在您的問題中指定您希望讀取客戶端文件,因爲我看到很多指的是服務器端讀取。

您應該看一下FileAPI--一個HTML 5 Javascript附加程序,它允許JavaScript通過文件輸入讀取文件內容。

我工作的代碼示例爲你 - 但這裏是一個很好的網站,你應該閱讀

http://www.htmlgoodies.com/beyond/javascript/read-text-files-using-the-javascript-filereader.html#fbid=4Fhi9T4mEAA

沒有FileAPI - 你仍然可以使用與目標=「一些IFRAME形式的文件輸入字段「 - 然後讓服務器上傳文件並返回文本。 (FormData允許在Ajax中上傳文件,但不支持所有瀏覽器)。

所以文件API是用自己的方式去 這裏是你如何與文件API做

<input type="file"/> 
<script> 
$(function(){ 
      $("input").change(function(e){ 
        console.log(["file changed",e]); 
       var myFile = e.target.files[0]; 
       var reader = new FileReader(); 
       reader.onload = function(e){ 
        console.log(["this is the contents of the file",e.target.result]); 
       }; 
       reader.readAsText(myFile) 

      }); 
     } 
) 
</script> 

您還可以實現一拖/拖放界面(如谷歌Gmail有)

 $("div").on("dragover",function(e){ 
      e.dataTransfer = e.originalEvent.dataTransfer; 
       e.stopPropagation(); 
       e.preventDefault(); 
       e.dataTransfer.dropEffect = 'copy'; // Explicitly show this is a copy. 

     }).on("drop",function(e){ 
        e.dataTransfer = e.originalEvent.dataTransfer; 
        e.stopPropagation(); 
        e.preventDefault(); 
        console.log(["selected files", e.dataTransfer.files])}); 
+0

它的加工。我知道了。謝謝。 – Rachel 2013-02-22 09:18:57