Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php html5获取文件路径_Php_Javascript_Html - Fatal编程技术网

Php html5获取文件路径

Php html5获取文件路径,php,javascript,html,Php,Javascript,Html,使用HTML5JavaScript,当用户选择文件时,如何获取文件路径? 我需要在本例中使用的文件路径: 用户上传文件,暂停itI我知道目前为止我认为只有mozilla可以这样做,然后关闭浏览器并计划第二天恢复该文件。我需要知道此文件的文件路径。即使您有一些浏览器提供给您的路径,也无法设置文件类型输入的路径 因此,使用纯JS和DOM不可能实现您想要的功能 我说这是不可能的,但既然你问了,我想有一种方法,使用新的文件API。下面的步骤概述了需要做什么,但没有经过任何测试,我也不希望它能起作用,它只

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


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

即使您有一些浏览器提供给您的路径,也无法设置文件类型输入的路径

因此,使用纯JS和DOM不可能实现您想要的功能

我说这是不可能的,但既然你问了,我想有一种方法,使用新的文件API。下面的步骤概述了需要做什么,但没有经过任何测试,我也不希望它能起作用,它只是向您展示方法,而且全局变量是不好的,它只是向您展示最简单的方法。这是一个很好的页面,其中有关于使用文件API的示例

首先您需要一个file类型的输入,然后您可以使用一旦用户选择一个文件,您就可以访问file对象

第三,您需要发出一个Ajax请求,将blob传递给服务器,跟踪上传完成的程度。看起来无法在客户端上跟踪进度。您可能需要轮询服务器以了解实际进度。知道从何处开始中断上传的一个可能的解决方案是拥有上传ID,当您重新启动上传时,您会询问服务器已上传了多少文件


很抱歉,我不能提供一个完整的答案,但这不是一个容易的问题。我给你的步骤应该会指引你正确的方向。

就像你不能在几天内提交一个完整的HTTP请求一样,你也不能通过文件上传来完成。协议就是不允许这样。因此,所有的努力都是徒劳的。

据我所知,这是不可能的,因为Javascript只能通过文件输入或拖放访问与之共享的文件。

无论如何,您都无法重新启动这样的文件上载。除了java之外,还有其他编程语言能够重新初始化文件上载。。任何能做到这一点的程序都必须有一个某种程度上,但我们能骗过它吗?使用html5文件API中的切片来逐个部分地上传html5,它将永远无法覆盖HTTP所指示的内容。协议是由服务器而不是客户端设置的。@JuanMendes。。那么,除了使用java/flash之外,还有没有其他方法可以实现这个暂停/恢复功能呢?我认为HTML5有FileAPI,所以我认为我们可以通过html@user1096900看看我修改过的答案。
<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>
var bb = new BlobBuilder();
bb.appendfileBlobs.(fileBlobs[0]);
window.saveAs(bb.getBlob(), "test_file");