我很抱歉,如果之前已经回答过,但我一直在寻找谷歌一段时间而没有找到答案。
我的问题
我已经使用PHP为我的网站上传了一个文件。我想让用户可以选择更改他们上传的图像。我设法做到这一点,他们只能上传1张图片,但现在我试图添加更多。他们可以添加多张照片,但是当涉及到改变它们时我会遇到问题。
这是我的1张图片的代码(有效)
$newname = "$pid.jpg";
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$newname");
header("location: inventory_list.php");
exit();
这是我用来改变它的代码。
if ($_FILES['fileField']['tmp_name'] != "") {
// Place image in the folder
$newname = "$pid.jpg";
move_uploaded_file($_FILES['fileField']['tmp_name'], "../inventory_images/$newname");
}
header("location: inventory_list.php");
这就是我现在将代码更改为多个图像的内容。
$image1 = "$pid Image1.jpg";
$image2 = "$pid Image2.jpg";
$image3 = "$pid Image3.jpg";
$image4 = "$pid Image4.jpg";
$image5 = "$pid Image5.jpg";
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image1");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image2");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image3");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image4");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image5");
header("location: inventory_list.php");
这是我尝试的但是我知道如果
存在逻辑错误 if ($_FILES['fileField']['tmp_name'] != "") {
// Place image in the folder
$image1 = "$pid Image1.jpg";
$image2 = "$pid Image2.jpg";
$image3 = "$pid Image3.jpg";
$image4 = "$pid Image4.jpg";
$image5 = "$pid Image5.jpg";
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image1");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image2");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image3");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image4");
move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$image5");
}
这是我表格的一部分
<tr>
<td align="right">Product Image: 1</td>
<td><div class="single">
<a href="../inventory_images/<?php echo $id; ?> Image1.jpg" rel="lightbox" title="<?php echo $product_name; ?>"><img src="../inventory_images/<?php echo $id; ?> Image1.jpg" width="142" height="188" alt="<?php echo $product_name; ?>" /></a>
</div></td>
</tr>
<tr>
<td align="right"></td>
<td><label>
<input type="file" name="Image1" id="Image1" />
</label></td>
</tr>
感谢您的帮助
答案 0 :(得分:1)
对于多个文件上传(例如),输入文件字段必须如此:
<input type="file" name="Images[]" id="Image1" />
在多个文件上传中,$ _FILE数组具有以下格式:
$_FILES['Images']['name'][0] // first file name
$_FILES['Images']['tmp_name'][0] // first file tmp_name
另见max_file_uploads配置指令
这会帮助你:http://www.php.net/manual/en/features.file-upload.multiple.php
ps:在上面的链接中,请看 Donatas Olseviius 的第一条评论: 他修复了$ _FILE数组。
答案 1 :(得分:1)
$_FILES['fileField']
将不包含您的图片,因为您的输入名称为Image1
。
您必须使用$_FILES['Image1']
。
但正如Mouloud建议的那样,使用阵列然后循环它更容易。但是,如果你想给每个图像输入一个唯一的名称也可以。
我将如何做到这一点:
HTML:
<input type="file" name="image[1]" id="Image1" />
<input type="file" name="image[2]" id="Image2" />
<input type="file" name="image[3]" id="Image3" />
...
PHP:
foreach($_FILES['image']['tmp_name'] as $i => $tmpName) {
if ($tmpName){
move_uploaded_file( $tmpName, "../inventory_images/{$pid}Image{$i}.jpg");
}
}