2013-07-11 5 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

Первое: каждый загруженный файл переходит в папку temp, а затем серверный скрипт переводит его в другую папку. Во-вторых: 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

Смежные вопросы