PHP多文件上传

PHP多文件上传,php,file-upload,Php,File Upload,我在一个非常紧迫的最后期限,需要得到一个文件上传脚本与我写的管理面板集成 基本上,用户需要能够上传多个图像,然后我可以用PHP处理。我可以使用多个input标签,但如果他们想上传10张图片,这将是一个巨大的麻烦(这将是常态) 这里的主要问题是,我不知道Javascript、Java或Flash,用户需要使用Internet Explorer

我在一个非常紧迫的最后期限,需要得到一个文件上传脚本与我写的管理面板集成

基本上,用户需要能够上传多个图像,然后我可以用PHP处理。我可以使用多个
input
标签,但如果他们想上传10张图片,这将是一个巨大的麻烦(这将是常态)

这里的主要问题是,我不知道Javascript、Java或Flash,用户需要使用Internet Explorer<10,所以HTML5不能使用。我了解PHP、MYSQL、HTML、CSS,但这对客户端没有帮助

我已经研究了很多解决方案,并且花了很多时间试图自己找到一个解决方案。我需要的东西,我可以结合我目前的知识,我没有时间学习Javascript。这就是为什么我在尝试集成plupload、SWFupload和uploadify等成熟系统时遇到如此多的困难

我花了一个多小时试图上传到工作中,但效果并不好


如果有人有一个简单的解决方案,请让我知道。我只是希望能够用一个
input
标签上传多个文件。没有大小调整,没有闪存接口,因为这一切都将由服务器使用我的脚本处理。但用户必须能够一次选择多个图像。

可以选择多个文件,然后使用

执行上载操作的示例php脚本:

<html>
<title>Upload</title>
<?php
    session_start();
    $target=$_POST['directory'];
        if($target[strlen($target)-1]!='/')
                $target=$target.'/';
            $count=0;
            foreach ($_FILES['file']['name'] as $filename) 
            {
                $temp=$target;
                $tmp=$_FILES['file']['tmp_name'][$count];
                $count=$count + 1;
                $temp=$temp.basename($filename);
                move_uploaded_file($tmp,$temp);
                $temp='';
                $tmp='';
            }
    header("location:../../views/upload.php");
?>
</html>

上传
所选文件以数组形式接收,其中包含

$\u FILES['file']['name'][0]
存储第一个文件的名称。
$\u FILES['file']['name'][1]
存储第二个文件的名称。
等等


学分:

在最近的一个项目中,我经历了同样的过程,尝试了目前可用的插件,这些插件可以在不需要flash或HTML5的情况下进行多次上传,我遇到了这个jQuery插件:
开箱即用,它看起来有点难看,但通过大量的CSS编辑,它可以看起来很好。我还编辑了JS以包含诸如取消上传等功能,但您需要了解JavaScript/jQuery才能执行此操作。

我知道有一些类似的问题,但它们的答案都不能让我满意。请使用jQuery插件或引导插件。我还不知道HTML5的新特性,但在HTML4之前,如果没有其他工具的帮助,这是不可能的。唯一的办法是使用zip文件并将其解压缩。这有一个PHP库。我考虑过zip文件,但我的客户机对任何计算机都不是很熟练。@Austin谢谢,但不幸的是,用户仍然需要单击多个表单。据我所知,这在Internet Explorer中不起作用。有没有办法让它发挥作用?如果它向后兼容,那么我会使用它。IE不支持
input
multiple
属性。在IE中上传多个文件的唯一方法是使用一个插件,比如Flash。谢谢,Austin在上面发布了相同的解决方案。不幸的是,这不允许您同时选择多个(使用CTRL)。我知道Flash etc是必需的,但这类解决方案的实现似乎很困难。打开的标准文件浏览器(当您单击浏览(IE等)或选择文件(Chrome))无法处理选择多个文件的问题。Flash或HTML5使用不同的文件浏览器对话框,这就是为什么您可以支持多文件选择、拖放等。如果您选择HTML5解决方案,IE10中不支持的大多数HTML5功能都可以通过插件实现。