2013-07-11 102 views
0

在這段代碼的PDF閱讀器pdf-js有一個input標籤,讓用戶上傳輸入文件HTML輸入標記的文件處理

<input id="fileInput" class="fileInput" type="file" oncontextmenu="return false;" style="visibility: hidden; position: fixed; right: 0; top: 0" /> 

input標籤是不是任何形式的一部分。一旦用戶上傳文件,它會去哪裏?處理文件的代碼在哪裏? (我問在一般情況下,不一定具體到這段代碼。)

+0

相關部件時必須設置在服務器端語言的路徑,比如說像PHP和它會去那裏。否則,如果我沒有錯,它會轉到一些臨時文件夾。這個標籤必須是某種形式的一部分。 – trollster

+0

然後它很有趣。這段代碼沒有服務器端。 –

+0

首先:每個上傳的文件都進入臨時文件夾,然後服務器端腳本將其移至另一個文件夾。第二:pdf-js使用javascript,因此不需要某種形式;) – furas

回答

3

「那很有趣。這段代碼沒有服務器端」

不,它不。

Pdf.js是用JavaScript編寫的客戶端程序。所以這在JavaScript方面工作。

它實際上需要您要顯示的文件,並且執行將緩衝區轉換爲Uint8Array所需的任何操作,而不是渲染它。

所有進程都發生在JavaScript端。沒有服務器端,沒有文件上傳。

Here大約是使用JavaScript讀取本地文件的文章

下面是代碼pdf.viewer.js

window.addEventListener('change', function webViewerChange(evt) { 
    var files = evt.target.files; 
    if (!files || files.length === 0) 
    return; 

    // Read the local file into a Uint8Array. 
    var fileReader = new FileReader(); 
    fileReader.onload = function webViewerChangeFileReaderOnload(evt) { 
    var buffer = evt.target.result; 
    var uint8Array = new Uint8Array(buffer); 
    PDFView.open(uint8Array, 0); 
    }; 

    var file = files[0]; 
    fileReader.readAsArrayBuffer(file); 
    PDFView.setTitleUsingUrl(file.name); 

    // URL does not reflect proper document location - hiding some icons. 
    document.getElementById('viewBookmark').setAttribute('hidden', 'true'); 
    document.getElementById('download').setAttribute('hidden', 'true'); 
}, true); 
+0

+1你發現了關於在javascript中閱讀本地文件的相同文章:) – furas