是否可以使用 HTML 表单/PHP 脚本上传文件夹

Posted

技术标签:

【中文标题】是否可以使用 HTML 表单/PHP 脚本上传文件夹【英文标题】:Is it possible to upload a Folder using HTML Form / PHP script 【发布时间】:2014-03-29 06:29:24 【问题描述】:

我正在开发一个网站,将多张图片上传到一个网站,我正在尝试可以做到这一点的方法。目前我有一个 php 脚本,它将从给定文件夹中获取和显示图像,如下所示:

<?php
$dirname = "content/2014/February/";
$images = glob($dirname."*.*");
foreach($images as $image) 
echo '<img src="'.$image.'" /><br />';

?>

这很好用,我可以使用 css 格式化 &lt;img&gt; 并将 jquery 应用于图库,但是,我如何首先使用 php 和 html 表单上传图像文件夹?

【问题讨论】:

How to upload folder with PHP?的可能重复 【参考方案1】:

是的,这是可能的。 代码如下:

<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

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!!";

?>

【讨论】:

【参考方案2】:

现在可以上传文件夹了。您可以通过以下代码完成它:

  <input type="file" webkitdirectory mozdirectory />

您可以在这里查看演示:https://jsfiddle.net/kevalpadia/vk6Ldzae/

希望它能帮助您解决问题。

【讨论】:

【参考方案3】:

&lt;input type="file" webkitdirectory="" directory="" /&gt; - 这仅适用于少数/现代浏览器 - 例如 Edge 或 Webkit 引擎 (Chrome)。我认为 Firefox 不支持。

【讨论】:

从 v50.0 和 MS edge 开始,它现在也得到了 firefox 的正式支持。就在有人四处张望的时候。【参考方案4】:

所有浏览器支持当前答案。

您不能上传整个文件夹。

currently only chrome supports it

还有要上传很多文件http://www.uploadify.com/

【讨论】:

感谢您的信息。 Uploadify 的问题在于它仅用于非商业用途,我发现在我的 XP 机器上使用 Chrome 会导致蓝屏。我将不得不考虑另一种方式来解决这个问题 @user3177012 蓝屏总是是操作系统问题(操作系统、驱动程序等)。 Chrome 或任何应用程序都可能崩溃,您的操作系统可能会提供错误消息、警告、事件日志或其他任何内容,但崩溃不是可接受的选项,而是操作系统或驱动程序错误 当前答案是哪一个?!?没有任何内容被接受。【参考方案5】:

试试这个 PHP 脚本:

主要网站: http://www.uploadify.com/

文档: http://www.uploadify.com/documentation/

【讨论】:

【参考方案6】:

你可以使用 HTML5 的

<input type="file" multiple>

关于在 PHP 中处理上传,请在此处阅读更多内容: http://php.net/manual/en/features.file-upload.post-method.php

【讨论】:

这不允许用户上传文件夹,只能上传多个文件。

以上是关于是否可以使用 HTML 表单/PHP 脚本上传文件夹的主要内容,如果未能解决你的问题,请参考以下文章

上传图片时PHP表单处理错误

PHP文件上传

表单不会使用 PHP 将带有文件上传的文本输入发布到 SQL 表

HTML 表单文件上传不上传文件

PHP文件上传

为啥我的php脚本上传应该是图像的空白文件