Har*_*rts 0 javascript php html5
使用html5 javascript,当用户选择文件时,如何获取文件路径?我需要在此示例中使用的文件路径:
用户上传文件,暂停它(我知道到目前为止我认为只有mozilla可以这样做),然后关闭浏览器并计划第二天恢复该文件.我需要知道这个文件的文件路径..
即使你确实有一个路径(一些浏览器习惯给你),也无法设置类型文件输入的路径.
因此,使用普通JS和DOM无法做到你想要的.
我说这是不可能的,但现在你问我确实有一种方法,使用新的File 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>
Run Code Online (Sandbox Code Playgroud)
秒现在您将内容作为二进制字符串.您可以使用File API以稍后可以使用FileWriter和FileSaver接口访问的方式在本地存储文件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");
Run Code Online (Sandbox Code Playgroud)
第三,您需要发出一个Ajax请求,将该blob传递给服务器,跟踪上传完成的程度.http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute.它看起来不像在客户端上可以进行跟踪进度.您可能需要轮询服务器以获取实际进度.知道在哪里开始中断上传的可能解决方案是使用上传ID,当您重新启动上传时,您会询问服务器已上载了多少文件.
对不起,我无法提供完整的答案,但这不是一个简单的问题.我给你的步骤应该带你朝着正确的方向前进.