php - html5获取文件路径

标签 php javascript html

使用html5 javascript,当用户选择文件时如何获取文件路径? 我需要在此示例中使用的文件路径:

用户上传一个文件,暂停它(我知道到目前为止我认为只有mozilla可以做到这一点),然后关闭浏览器并计划第二天恢复该文件。我需要知道这个文件的文件路径..

最佳答案

即使您确实有路径(某些浏览器曾经给您提供过路径),也无法设置文件类型输入的路径。

因此,使用纯 JS 和 DOM 无法完成您想要的操作。

我说这是不可能的,但既然你问了,我确实认为有办法,使用新的文件 API。以下步骤概述了需要做什么,但从未经过测试,我不希望它起作用,它只是向您展示方法,而且全局变量也不好,这只是向您展示的最简单的方法。这是一个很好的页面,其中包含有关使用文件 API 的示例 http://www.html5rocks.com/en/tutorials/file/dndfiles/

首先您需要一个文件类型的输入,然后您可以使用,一旦用户选择一个文件,您就可以访问 File 对象。 http://dev.w3.org/2006/webapi/FileAPI/#dfn-filereader

<input type="file" id="files" name="files[]" multiple />
<script>
  var fileBlobs = [];
  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // files is a FileList of File objects. You may now read their contents
    var reader = new FileReader();
    for (var i = 0, f; f = files[i]; i++) {
      fileBlobs.push(reader.readAsBinaryString(f));
    }
  }    
  document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>

第二 现在您已获得二进制字符串形式的内容。您可以使用文件 API 在本地存储文件,以便稍后使用 FileWriter 和 FileSaver 接口(interface)访问 http://dev.w3.org/2009/dap/file-system/file-writer.html

var bb = new BlobBuilder();
bb.appendfileBlobs.(fileBlobs[0]);
window.saveAs(bb.getBlob(), "test_file");

第三 您需要发出一个 Ajax 请求,将该 blob 传递到服务器,跟踪上传的完成情况。 http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute 。看起来无法在客户端上跟踪进度。您可能需要轮询服务器以了解实际进度。要知道从哪里开始中断的上传,一个可能的解决方案是获取上传 ID,当您重新开始上传时,您会询问服务器已上传了多少文件。

抱歉,我无法提供完整的答案,但这不是一个简单的问题。我为您提供的步骤应该会带您走向正确的方向。

关于php - html5获取文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9301563/

相关文章:

javascript - "useState"不能在回调中调用。如何在 "useCallback"上使用状态?

python - 如何使用 splinter 填充表格内的输入框?

javascript - Jquery - 在参数中选择一个数字字符串

php - 查询 SQL 表以根据用户输入返回同一行的值

PHP多维数组转无序列表,构建url路径

php - 在 PHP 中, 'assign by reference' 如何与这个新的 stdclass 一起使用?

javascript - 处理Python在JS文件中生成的JSON

javascript - 在 Angular 2 中复制对象的最佳方法是什么?

php - 如何使用 ODBC+FreeTDS 从 UNIX 中的 PHP 连接到 sybase?

javascript - Picasa:自动更改站点中的图像大小