Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要上传多张压缩图像的帮助吗_Php_Html_Image_Upload_Compression - Fatal编程技术网

Php 需要上传多张压缩图像的帮助吗

Php 需要上传多张压缩图像的帮助吗,php,html,image,upload,compression,Php,Html,Image,Upload,Compression,我有下面这些代码来上传压缩的单个图像。但现在我想上传多张图片。是否有人可以使用以下代码帮助上载多个图像: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Upload Compress and Check</title> </head> <body>

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

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

上传压缩和检查

更改输入“文件”元素的位:


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


我希望您能理解,我无法解释更多,因为我正在使用电话…

所以您希望我们将您的单文件上传内容修改为多个文件?为了让多个文件正常工作,你做了什么?@Jon是的,这就是我想要的。如果可能的话,请帮忙。谢谢你,好的。所以需要添加name=“file[]”以及php代码。如何循环它?您可以使用for($i=0;$ifor($i=0;$i
<input type="file" multiple name="file[]" id="file" accept="image/*" />