0

在 PDF 阅读器pdf-js的这段代码中,有一个input标签可以让用户上传输入文件

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

这个input标签不是任何形式的一部分。一旦用户上传文件,它会去哪里?处理文件的代码在哪里?(我问的是一般情况,不一定特定于这段代码。)

4

1 回答 1

3

“那就有意思了。这段代码没有服务器端”

不,它没有。

Pdf.js 是一个用 javascript 编写的客户端程序。所以这适用于javascript方面。

它实际上获取您想要显示的文件,并执行任何必须完成的操作,例如将缓冲区转换为 Uint8Array 而不是渲染它。

所有进程都发生在 javascript 端。没有服务器端,没有文件上传。

是一篇关于在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);
于 2013-07-11T01:30:52.773 回答