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

时间:2013-11-16 14:54:45

标签: php

我有一个多图像大小调整脚本。这是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);

但它没有调整图像大小。可能是什么原因? 感谢

2 个答案:

答案 0 :(得分:0)

以下是您的问题:$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++) {
    ...
}

答案 1 :(得分:0)

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++)