PHP 多个图像大小调整不起作用


PHP multiple image resizing not working

我有一个多图像大小调整脚本。这是 HTML 部分

<td><input type="file" name="fileUpload[]"><br>
    <input type="file" name="fileUpload[]"><br>
    <input type="file" name="fileUpload[]"><br>
    <input type="file" name="fileUpload[]"><br>
    <input type="file" name="fileUpload[]"><br></td>

这是php部分

for($i=0;$i<count($_FILES["fileUpload"]["name"]);$i++)
    {
        if(trim($_FILES["fileUpload"]["tmp_name"][$i]) != "")
        {
            $images = $_FILES["fileUpload"]["tmp_name"][$i];
            $new_images = "thumbnails_".$_FILES["fileUpload"]["name"][$i];
            copy($_FILES["fileUpload"]["tmp_name"][$i],"uploads/".$_FILES["fileUpload"]["name"][$i]);
            $width=100; 
            $size=GetimageSize($images);
            $height=round($width*$size[1]/$size[0]);
            $images_orig = ImageCreateFromJPEG($images);
            $photoX = ImagesX($images_orig);
            $photoY = ImagesY($images_orig);
            $images_fin = ImageCreateTrueColor($width, $height);
            ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
            ImageJPEG($images_fin,"uploads/".$new_images);
            ImageDestroy($images_orig);
            ImageDestroy($images_fin);

但它不会调整图像大小。可能是什么原因?谢谢

这是你的问题:$i<count($_FILES["fileUpload"]["name"]) . $_FILES["fileUpload"]是一个文件数组,每个文件都有一个name键。 另一方面,$_FILES["fileUpload"]["name"]是不确定的。 你需要做`$i<count($_FILES["fileUpload"]).

另外,作为一般规则,不要做这种循环:

for($i=0; $i<count(...); $i++) {
    ...
}

在一个小数组上,这很好,但是对于一个大数组,计算每个循环上的count()是一个巨大的打击。 最好这样做:

$count = count(...);
for($i=0; $i<$count; $i++) {
    ...
}
copy($_FILES["fileUpload"]["tmp_name"][$i],"uploads/".$_FILES["fileUpload"]["name"][$i]);

将其更改为move_uploaded_file(...);

这也是错误的:

for($i=0;$i<count($_FILES["fileUpload"]["name"]);$i++)

将其更改为:

for($i=0;$i<count($_FILES["fileUpload"]);$i++)