I have a multiple image resizing script.Here is the HTML part
<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>
And here is the php part
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);
But its not resizing the images.What can be the reason? Thanks
Here's your problem: $i<count($_FILES["fileUpload"]["name"])
. $_FILES["fileUpload"]
is an array of files, each of which has a name
key. $_FILES["fileUpload"]["name"]
, on the other hand, is undefined. You need to do `$i<count($_FILES["fileUpload"])
.
Also, as a general rule, don't do this kind of loop:
for($i=0; $i<count(...); $i++) {
...
}
On a small array, that's fine, but with a big array, calculating count() on each loop is a huge hit. Better to do this:
$count = count(...);
for($i=0; $i<$count; $i++) {
...
}
copy($_FILES["fileUpload"]["tmp_name"][$i],"uploads/".$_FILES["fileUpload"]["name"][$i]);
change this to move_uploaded_file(...);
Also this is wrong:
for($i=0;$i<count($_FILES["fileUpload"]["name"]);$i++)
change it to:
for($i=0;$i<count($_FILES["fileUpload"]);$i++)