<form action="a.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" id="files" multiple="" directory="" webkitdirectory="" mozdirectory="">
<input class="button" type="submit" value="Upload" />
</form>
http://www.w3bees.com/2013/03/directory-upload-using-html-5-and-php.html
上述方法适用于在最近更新chrome之前上传包含一个或多个子文件夹的文件夹。但是,chrome现在显示“此网页不可用,...... a.php的网页可能暂时关闭,或者它可能已永久移动到新的网址。错误代码:ERR_ACCESS_DENIED”如果我上传包含的文件夹一个子文件夹。如果所选文件夹不包含子文件夹,它可以正常工作。
有人对此有所了解吗? 感谢
答案 0 :(得分:2)
我遇到了同样的问题。问题是浏览器尝试访问子文件夹本身。因此,您必须使用一些“预上传”功能将它们从发送数据中排除,并使用XMLHttpRequest手动上传文件。
这是可行的解决方案。您需要在示例中的index.php文件的<script>
标记内添加此<head>
标记。
<script>
window.onload = function(){
document.getElementById('submit_button').onclick = function(e) {
var files = document.getElementById('files').files;
uploadFiles(files);
return false;
}
}
function uploadFiles(files){
var xhr = new XMLHttpRequest();
var data = new FormData();
// go through files
for (var i in files){
if( files[i].webkitRelativePath && files[i].type){
data.append(i, files[i]);
}
};
xhr.open('POST', "index.php", true);
xhr.send(data);
}
</script>
还需要将id="submit_button"
添加到提交按钮。当然,你必须改变你的PHP代码才能正确处理新数据。