我建立一个上传者,如果可能的话需要一些帮助。我有一个上传器,一个人可以使用javascript字段加法器向多个上传器添加任意数量的图片。
我想要回复他作为文字上传的所有图片,但是使用$fileName[0]
,$fileName[1]
,$fileName[2]
我认为不会有效,因为它不确定要上传的数量。是否有一个数组我可以用来内爆或连接所有数组以显示为一个。
这是我的代码。
<?php
if (isset($_POST['addpart'])) {
$image = $_FILES['images']['tmp_name'];
$name = $_POST['username'];
$name = str_replace(' ', '_', $name);
$i = 0;
$i2 = 1;
$id = uniqid();
foreach ($image as $key) {
$fileData = pathinfo(basename($_FILES["images"]["name"][$i]));
$fileName[] = $name . '_' . $id . '_' . $i2 . '.' . $fileData['name'] . 'jpg';
move_uploaded_file($key, "image/" . end($fileName));
//copy("image/" . end($fileName) , "image_thumbnail/" . end($fileName));
$images = "image/" . end($fileName);
$new_images = "image_thumbnail/" . end($fileName);
$width = 100; //*** Fix Width & Heigh (Autu caculate) ***//
$size = GetimageSize($images);
$height = round($width * $size[1] / $size[0]);
switch ($size[2]) {
case IMAGETYPE_GIF:
$images_orig = imagecreatefromgif($images);
break;
case IMAGETYPE_JPEG:
$images_orig = imagecreatefromjpeg($images);
break;
case IMAGETYPE_PNG:
$images_orig = imagecreatefrompng($images);
break;
default:
die("Unknown filetype");
}
//$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, $new_images);
$i++;
$i2++;
}
echo 'Uploaded<br />';
echo 'Main Image - <a href="image/' . $fileName[0] . '">' . $fileName[0] . '</a><br />';
echo 'Extra Image 1 - <a href="image/' . $fileName[1] . '">' . $fileName[1] . '</a><br />';
echo 'Extra Image 2 - <a href="image/' . $fileName[2] . '">' . $fileName[2] . '</a><br />';
echo '<hr>';
}
?>
我希望我所要求的是明确的。
答案 0 :(得分:1)
您可以使用简单的foreach loop并循环浏览$fileName
foreach ($fileName as $file) {
echo "Value: $file<br />\n";
}
在此示例中,您在问题中称为$fileName[0]
,$fileName[1]
,...的内容简称为$file
。 foreach循环将负责计算$fileName
内的项目,以便您不必知道它。
因此,我建议您将$fileName
重命名为$fileNames
(因为它是一个数组)并按照以下方式编写foreach:($fileNames as $fileName)
。
出于其他目的,如果您需要知道数组中有多少项,可以使用count()。