我在哪里可以找到webkitRelativePath
属性可以拥有的最大文件夹级别数的信息?
我有这个:
<input type="file" multiple webkitdirectory id="fileURL" />
我在image.jpg
folder6
内添加了文件c:\folder1\folder2\folder3\folder4\folder5\folder6\image.jpg
但是当我在遍历folder6
中的所有文件时调试并在for循环中设置断点时,File.webkitRelativePath
仅返回最后两个文件夹"folder5/folder6/image.jpg"
。
var files,
file,
extension,
input = document.getElementById("fileURL"),
output = document.getElementById("fileOutput"),
holder = document.getElementById("fileHolder");
input.addEventListener("change", function (e) {
files = e.target.files;
output.innerHTML = "";
for (var i = 0, len = files.length; i < len; i++) {
file = files[i];
extension = file.name.split(".").pop();
output.innerHTML += "<li class='type-" + extension + "'>" + file.webkitRelativePath + " (" + Math.floor(file.size / 1024 * 100) / 100 + "KB)</li>";
}
}, false);
答案 0 :(得分:0)
无法使用input type="file"
元素检索用户文件系统的完整路径。
您可以将所有文件打包成一个带有“标题”文档的JSON
文件,例如JSON
,描述要重新组合的文件夹结构,解析为Blob
或.just JSON
尝试将“根文件夹”重组为包含多个文件的data URI
表示的单个文件;使用包含描述的“标题”,例如,在JSON
中,如何重新组合文件结构;例如,参见HTML5 Javascript how to create a gallery photo with all file in a folder
在现有文件夹的第一个文件中包含说明;解析第一个文件,或关于如何重新组合文件夹的文件结构的特定文件名
另一种选择是将accept="application/zip"
属性替换为multiple
,directory
属性;将文件夹另存为.zip
,解压后应保留文件夹结构