上传2张或更多图片PHP

时间:2017-11-22 22:53:48

标签: php html html5 post web

我需要上传几张图片,我有2个问题,第一个不允许我上传2个或更多文件的时候来自手机(这里有重要的事情,如果是来自手机,你必须打开相机,如果是在PC,它必须显示文件选择的窗口,这工作正常,但手机只剩下一个,到目前为止我只在Android上使用Crhome尝试过它,第二个细节是第一个元素没有保存,如果它只是一个文件,因为它也没有,它似乎不采取位置[0],当我放置多个图像时,第一个不保存而其他图像保存正确。我已经尝试了一段时间,我没有看到问题。附件我的文件结构: \相机
└───uploads
└───index.php
└───upload.php

index.php:

<html>
<head>
    <meta charset="UTF-8">
    <title>upload</title>
</head>
<body>
    <form action="upload.php" method="post" multipart="" enctype="multipart/form-data">
        <input type="file" name="img[]" accept="image/*" id="capture" capture="camera" multiple >
        <input type="submit">
    </form>
</body>
</html>

并上传.php:

<?php
            echo '<pre>';
            $img = $_FILES['img'];

            if(!empty($img))
            {
                $img_desc = reArrayFiles($img);
                print_r($img_desc);

                foreach($img_desc as $val)
                {
                    $newname = date('YmdHis',time()).mt_rand().'.jpg';
                    move_uploaded_file($val['tmp_name'],'./uploads/'.$newname);
                }
            }

            function reArrayFiles($file)
            {
                $file_ary = array();
                $file_count = count($file['name']);
                $file_key = array_keys($file);

                for($i=0;$i<$file_count;$i++)
                {
                    foreach($file_key as $val)
                    {
                        $file_ary[$i][$val] = $file[$val][$i];
                    }
                }
                return $file_ary;
            }
        ?>

1 个答案:

答案 0 :(得分:0)

这对我有用,跳这将解决你的第二个问题。

if (isset($_FILES['Gallery']) && is_array($_FILES['Gallery'])) {
                      $errors= array();
                      foreach($_FILES['Gallery']['tmp_name'] as $key => $tmp_name ) {
                        $file_name = $key.$_FILES['Gallery']['name'][$key];
                        $file_size =$_FILES['Gallery']['size'][$key];
                        $file_tmp =$_FILES['Gallery']['tmp_name'][$key];
                        $file_type=$_FILES['Gallery']['type'][$key];
                        if($file_size > 2097152){
                          $errors[]='File size must be less than 2 MB';
                        }
                        if (empty($errors)==true) {
                          if (is_dir('uploads')==false) {
                            mkdir('uploads', 0700);     // Create directory if it does not exist
                          }

                          if (file_exists("uploads/".$file_name)==false) {
                            move_uploaded_file($file_tmp,"uploads/".$file_name);
                            chmod("uploads/".$filename, 0777);
                            $Gallery_Link = "uploads/".$file_name;
                          } else {                                  // rename the file if another one exist
                            $Gallery_Link = "uploads/".time()."_".$file_name;
                            rename($file_tmp,$Gallery_Link) ;
                          }

                        } else {
                          echo $errors;
                        }
                      }
                    }