【发布时间】:2021-07-16 19:10:06
【问题描述】:
我正在尝试使用表单上传包含文件的文件夹和还包含文件的子文件夹。我得到了要上传的文件夹,但是当我转到我的目录时,我看到一个文件夹中的所有文件,包括子文件夹。我希望能够单击上传并单击文件夹并提交。完成后,如果我转到我的目录,我会找到包含子文件夹的文件夹。 这是我的代码
html
<form method="post" enctype="multipart/form-data" action="#">
Folder Name: <input type="text" name="foldername" /><br/>
Choose Directoryy: <input type="file" name="files[]" id="files" multiple directory="" webkitdirectory="" mozdirectory=""><br/>
<input class="button" type="submit" value="Upload" name="upload" />
</form>
php
<?php
if(isset($_POST['upload']))
{
if($_POST['foldername']!="")
{
$foldername=$_POST['foldername'];
if(!is_dir($foldername))
mkdir($foldername);
foreach($_FILES['files']['name'] as $i=>$name)
{
if(strlen($_FILES['files']['name'][$i]) > 1)
{
move_uploaded_file($_FILES['files']['tmp_name'][$i],$foldername.'/'.$name);
}
}
echo "Folder is uploaded successfully ..";
}
else
echo "Folder uploaded Failed!!";
}
?>
【问题讨论】:
-
"我希望能够点击上传并点击文件夹并提交。"这不是浏览器或上传的工作方式。
-
Http/browsers 不支持这样的文件夹上传。当您上传文件列表时,它也不会上传文件夹结构。下一个最好的方法是将其全部压缩并上传 zip,然后在服务器上解压缩
-
我正在制作个人表格,以帮助我更快地完成工作。我不想一次上传所有文件并转到文件夹并开始创建新的子文件夹并将文件拖入其中。我只想在单击上传按钮时将文件夹和子文件夹保留在我的目录中。我尝试了另一种方法,即复制路径并尝试根据为每个文件保存的路径创建文件夹,但出现了很多错误。
-
也许您应该只使用 FTP 或 SFTP 将文件上传到服务器。正如我已经解释过的,HTTP 并不是真正为批量文件传输而设计的,您所描述的场景无法完全按照您的意愿实现,而其他协议是专门为文件传输而设计的,它们隐含地了解文件夹结构.实现你想要的会容易得多。
标签: javascript php html jquery ajax