需要有关使用压缩上传多个图像的帮助

时间:2016-03-25 02:45:10

标签: php html image upload compression

我在下面使用以下代码来压缩上传单张图片。但是现在我想上传多张图片。有人可以帮助使用以下代码上传多个图像:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
         <title>Upload Compress and Check</title>
     </head>
     <body>
     <form action="" method="post" enctype="multipart/form-data">
           <input type="file" name="file" id="file" accept="image/*" />
           <input type="submit" name="btnsubmit" value="submin" id="submit" />
     </form>
</body>
</html>

<?php 
function compress_image($source_url, $destination_url, $quality) { 
    $info = getimagesize($source_url); 
    if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source_url); 
    elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source_url); 
    elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source_url); 
    elseif ($info['mime'] == 'image/jpg') $image = imagecreatefrompng($source_url);

    imagejpeg($image, $destination_url, $quality); 

    return $destination_url; 
} 

if(isset($_POST['btnsubmit'])){
    if(isset($_FILES['file']['name']) && $_FILES['file']['name'] != ""){

        $filename = $_FILES['file']['name'];
        $file_tmp = $_FILES['file']['tmp_name'];
        $file_size = $_FILES['file']['size'];
        $file_type = $_FILES['file']['type'];
        $file_error = $_FILES['file']['error'];
        $target_dir = "img/";
        $target_file = $target_dir . basename($_FILES["file"]["name"]);
        $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
        $uploadOk = 1;

        if(file_exists($target_file)){  exist or not
            echo "<script>alert('sorry, file already exists.');</script>";
            $uploadOk = 0;
        }else if ($file_size > 500000) { 
            echo "<script>alert('sorry, your file is too large.');</script>";
            $uploadOk = 0;
        }else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { 
            echo "<script>alert('sorry, only JPG, JPEG, PNG & GIF files are allowed.');</script>";
            $uploadOk = 0;
        }else if($file_error > 0){ 
            echo "<script>alert('Your file is corrupted!');</script>";
            $uploadOk = 0;
        }

        if($uploadOk == 0){ 
            echo "<script>alert('sorry, your file was not uploaded!');</script>";
        }else{

            $rand = md5(sha1(rand(10000, 10000000))); 
            $url = $target_dir . $rand . '.jpg'; 
            $filename = compress_image($_FILES["file"]["tmp_name"], $url, 80); 

        }

    }else{
        echo "<script>alert('No image to upload!');</script>";
    }
  }
?>

提前谢谢.....

1 个答案:

答案 0 :(得分:0)

更改输入“file”元素的位:

<input type="file" multiple name="file[]" id="file" accept="image/*" />

没关系,现在你可以使用$ _FILES [“file”] [“name”] [0]来获取第一个文件的名称,或者_FILES [“file”] [“tmp_name”] [1]来获取第二个文件的tmp_name,依此类推。

我希望你理解,我无法解释更多,因为我正在使用手机...

相关问题