2012-10-31 28 views
2

我打算在本地創建一個應用程序。我需要一個javascript代碼來呈現我使用html文件上傳輸入框從我的系統中選擇的文件的內容。提到了下面的鏈接,但 http://www.alecjacobson.com/weblog/?p=1645其中的代碼是不是其他的瀏覽器兼容,如何使用java腳本在瀏覽器中顯示本地文件的內容(代碼與所有瀏覽器兼容)?

由於提前

+1

我不認爲有這種截至目前何潔跨瀏覽器的解決方案。 – techfoobar

+0

@aSanthosh:我認爲IE 10和最新的safari支持File API。該鏈接表示它已經在Chrome和Firefox中支持,所以這應該與所有瀏覽器兼容。 – karthick

回答

1

出於安全考慮,您不能打開從瀏覽器中的文件。你實際上可以做的是將其上傳到服務器,然後將其寫回到頁面。 要上傳文件,我建議你uploadify或jquery上傳。

不客氣。

如果你不關心的跨瀏覽支持,則:

<input id="file" type="file" multiple="" onchange="startRead()"> 

<pre><code id="output"></code></pre> 


function startRead() { 
    //obtain input element through DOM 
    var file = document.getElementById('file').files[0]; 
    if (file) { 
     getAsText(file); 
    } 
} 
function getAsText(readFile) { 
    var reader; 
    try { 
     reader = new FileReader(); 
    } catch (e) { 
     document.getElementById('output').innerHTML = "Error: seems File API is not supported on your browser"; 
     return; 
    } 
    // Read file into memory as UTF-8  
    reader.readAsText(readFile, "UTF-8"); 
    // handle success and errors 

    reader.onload = loaded; 
    reader.onerror = errorHandler; 
} 

function loaded(evt) { 
    // Obtain the read file data  
    var fileString = evt.target.result; 
    document.getElementById('output').innerHTML = fileString; 
} 
function errorHandler(evt) { 
    if (evt.target.error.code == evt.target.error.NOT_READABLE_ERR) { 
     // The file could not be read 
     document.getElementById('output').innerHTML = "Error reading file..." 
    } 
} 
+0

這個問題包含一個指向鏈接,它**是可能的! – Quentin

+0

@Quentin,aSanthosh要求「如何使用java腳本在瀏覽器中顯示本地文件的內容(代碼要兼容所有瀏覽器)?」,它是跨瀏覽器兼容的唯一方式是做到舊方式,不使用文件api。 – nicoabie

0

我們正在開發各種基於Web的圖形用戶界面編輯器。這個問題已經成爲很長一段時間的問題。

據我所知,您提到的網站中的方法是唯一的方法。我們正在使用HTML5文件系統。

在此之前,我們一直在使用各種閃存模塊,本地Web服務器,Dropbox的,所考慮的......