使用多个&上传文件PHP

时间:2013-12-09 18:39:11

标签: php upload count

我正在尝试使用以下方法使用以下代码上传文件:

    echo "<form method='POST' action='uploadfile.php?action=addok' enctype='multipart/form-data'>
        <input type=\"file\" multiple=\"true\" name=\"userfile[]\"  />
            <input type='submit' value=' add '>
            </form>";

    if ($_GET['action'] == 'addok') {

      echo "\$_FILES['userfile']=".count($_FILES['userfile'])."<br />\$_FILES['userfile']['name']=".count($_FILES['userfile']['name'])."<br />\$_FILES=".count($_FILES)."<br />";
    }

它只为所有计数返回0。 如果我只上传1,它会返回计数,否则......没有.. 我从昨天起就试图解决它的问题。 有人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

    if ($_GET['action'] == 'addok') {

        foreach($_FILES['userfile'] as $key=>$val){

              print_r($val);
        }
    }

答案 1 :(得分:0)

检查你的php.ini,函数max_file_uploads()应该有一个大于1的值

然后试试这个,

    <form method="post" action="uploadfile.php?action=addok" enctype="multipart/form-data">
    <input type="file" name="userfile[]" multiple>
    <input type="submit" value="UPLOAD">
    </form>

    $folder = “/home/username/www/uploading/”;
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name']))  {   
    if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $folder.$HTTP_POST_FILES['userfile']['name'])) {
         Echo “File uploaded”;
    } else {
         Echo “File not moved to destination folder. Check permissions”;
    };
} else {
     Echo “File is not uploaded.”;
}; 

您需要确保您的上传文件夹具有正确的权限。 chmod -R 777更改权限,以便php可以上传到该文件夹​​。

值得注意的是IE&lt; 10.0不支持通过“multiple”属性上传多个文件,因为File API仍然是工作草案,http://caniuse.com/#feat=fileapi

HTML5 input type file's multiple attribute not working in IE?

答案 2 :(得分:0)

你正在计算$ _FILES,它总是1:

尝试:

echo "<form method='POST' action='uploadfile.php?action=addok' enctype='multipart/form-data'>
            <input type=\"file\" multiple=\"true\" name=\"userfile[]\"  />
                <input type='submit' value=' add '>
                </form>";

        if ($_GET['action'] == 'addok') {
          echo "<pre>";
            print_r($_FILES);
            echo "</pre>";
          echo "\$_FILES['userfile']=".count($_FILES['userfile'])."<br />\$_FILES['userfile']['name']=".count($_FILES['userfile']['name'])."<br />\$_FILES=".count($_FILES['userfile']['name'])."<br />";
        }

的print_r:

Array
(
    [userfile] => Array
        (
            [name] => Array
                (
                    [0] => file1.txt
                    [1] => file2.txt
                    [2] => file3.txt
                )

            [type] => Array
                (
                    [0] => text/plain
                    [1] => text/plain
                    [2] => text/plain
                )

            [tmp_name] => Array
                (
                    [0] => C:\wamp\tmp\php1F5C.tmp
                    [1] => C:\wamp\tmp\php1F5D.tmp
                    [2] => C:\wamp\tmp\php1F5E.tmp
                )

            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )

            [size] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )

        )

)

结果:

$_FILES['userfile']=5
$_FILES['userfile']['name']=3
$_FILES=3

答案 3 :(得分:0)

解决方案::

它表示问题不在代码中,因为它在浏览器中。

由于我认为插件或其他问题,它无法在firefox,opera或chrome中运行。

我确实在safemode click shift + firefox icon to open in safe mode中运行了firefox并且它运行良好。

这是任何人再遇到同样的问题。

注意: 如果有人知道如何检测这个问题并警告用户请成为我的阵风:)