使用以下PHP我试图上传多个图像。上传的图片数量可以变化。
我似乎遇到的问题是图像编号1没有上传,但文件路径正在打印到屏幕上。
代码: -
if ($_FILES['pac_img_1']['name']>""){
echo("You have uploaded the following images:-<ul>");
for ($i=1; $i<=$imagesCount; $i++){
$target_path = "files/" . $companyName . "/images/";
$target_path = $target_path . basename( $_FILES['pac_img_' . $i]['name']);
if(move_uploaded_file($_FILES['pac_img_' . $i]['tmp_name'], $target_path)) {
echo "<li><a href='". $target_path . "'>". basename( $_FILES['pac_img_' . $i]['name']). "</a></li>";
} else{
echo "There was an error uploading an image";
}
};
echo("</ul>");
}else{
echo("None uploaded");
};
我已经从之前使用过的一些代码中对其进行了调整,所以我怀疑我在这里犯了“小学生”的错误。
帮助将不胜感激。
编辑以添加$ imagesCount通过$ _POST请求从表单元素中获取其值。仅上传一个图像时,值= 0。
答案 0 :(得分:1)
根本不是一个php-dude,我会尝试改变
for ($i=1; $i<=$imagesCount; $i++){
到
for ($i=0; $i<=$imagesCount; $i++){
- 或许
for ($i=0; $i < $imagesCount; $i++){
取决于$ imagesCount的设置方式。
答案 1 :(得分:0)
您的for循环需要修改。数组索引从0开始。最后一个元素应该是Array length - 1;
您的for循环需要修改为以下代码示例。
if ($_FILES['pac_img_1']['name']>""){
echo("You have uploaded the following images:-<ul>");
for ($i=0; $i<$imagesCount; $i++){
$target_path = "files/" . $companyName . "/images/";
$target_path = $target_path . basename( $_FILES['pac_img_' . $i]['name']);
if(move_uploaded_file($_FILES['pac_img_' . $i]['tmp_name'], $target_path)) {
echo "<li><a href='". $target_path . "'>". basename( $_FILES['pac_img_' . $i]['name']). "</a></li>";
} else{
echo "There was an error uploading an image";
}
};
echo("</ul>");
}else{
echo("None uploaded");
};
答案 2 :(得分:0)
您的for循环需要修改。数组索引从0开始。最后一个元素应该是Array length - 1; 您的for循环需要修改为以下代码示例。
实际上,它正在循环几个$ _POST itens。他的HTML可能有类似的东西:
<input type="file" name="pac_img_1">
<input type="file" name="pac_img_2">
<input type="file" name="pac_img_3">
他试图获取这些图像。
我会这样做。
HTML:
<input type="file" name="pac_img[]" />
<input type="file" name="pac_img[]" />
<input type="file" name="pac_img[]" />
(请注意,您可以动态添加文件输入而无需担心名称)
PHP:
if (count($_FILES['pac_img']) > 0){
echo("You have uploaded the following images:-<ul>");
foreach($_FILES['pac_img'] as $key => $file){
$target_path = "files/" . $companyName . "/images/";
$target_path = $target_path . basename( $file['name']);
if(move_uploaded_file($file['tmp_name'], $target_path)) {
echo "<li><a href='". $target_path . "'>". basename( $file['name'] ). "</a></li>";
} else{
echo "There was an error uploading an image";
}
}
echo("</ul>");
}else{
echo("None uploaded");
}
最后,但并非最不重要:始终检查上传的文件是否适合他们。 (http://www.acunetix.com/websitesecurity/upload-forms-threat.htm)