1

我愿意上传多张图片但有奇怪的问题..我正在使用这个简单的代码......

<?php
require("query/config.php");
$p_id=$_POST['place_id'];
$file=$_FILES["image"]["name"];
print_r($file);
echo "hghghg";
foreach($file as $key=>$val)
{
move_uploaded_file($_FILES["image"]["tmp_name"],"/upload/" . $val); 
$query=mysqli_query($con,"insert into city_gallery set place_id='$p_id',image='$val'") or die("Alert! Query failed.");

}

如果我不使用 foreach 循环,这是代码不起作用并且不会在 upload.php 页面上显示任何内容...例如,如果我在 upload.php 上只有此代码..它会显示...

<?php
require("query/config.php");
$p_id=$_POST['place_id'];
$file=$_FILES["image"]["name"];
print_r($file);
echo "hghghg";

这里的输出是......Array ( [0] => 86662.jpg [1] => beautiful-girl-baby-hd-images.jpg [2] => [3] => ) hghghg

所以它的意思是图像数组出现在这个页面上......但是当我使用上面的代码时,foreach它在这个页面上什么都不显示,也没有在上传文件夹中移动图像,而不是图像名称进入数据库,

这是我的表格..

<form action="upload.php" method="post" enctype="multipart/form-data">

                         <?php

                         include("query/config.php");
                         $query=mysqli_query($con,"select * from cite_guide order by id desc");
                         ?>
                         <select id="place_id" name="place_id" >
                         <option value="0">Select Place</option>
                         <?php
                         while($row=mysqli_fetch_array($query))
                         {
                         ?>
                                <option value="<?php echo $row['id']; ?>"><?php echo $row['place']; ?></option>
                                <?php
                                }
                                ?>
                                </select>
                            <fieldset>Image 1

                                <input type="file" class="input-medium" name="image[]" />
                            </fieldset>
                           <fieldset>Image 2

                                <input type="file" class="input-medium" name="image[]" />
                            </fieldset>
                            <fieldset>Image 3

                                <input type="file" class="input-medium" name="image[]" />
                            </fieldset>


                            <fieldset>Image 4

                                <input type="file" class="input-medium" name="image[]" />&nbsp;&nbsp;<input class="submit-green" type="submit" value="Upload" />
                            </fieldset>

                         </form>

现在图像名称正在进入数据库,但图像没有移动到上传文件夹...对于图像我更正了这个

move_uploaded_file($_FILES["file"]["tmp_name"],"/upload/" . $val);

move_uploaded_file($_FILES["image"]["tmp_name"],"/upload/" . $val); 

现在只有图像不动......为什么????

知道为什么会这样...请建议...谢谢

4

1 回答 1

0

感谢您的时间,这是循环的问题...我将foreach循环替换为for并且我的脚本现在正在运行,我面临的主要问题是 foreach 循环遍历$_FILES数组,并且temp_name包含每个文件的临时名称。所以我做了一些这样的东西..

我更改了此代码:从

foreach($file as $key=>$val)
{
move_uploaded_file($_FILES["image"]["tmp_name"],"/upload/" . $val); 
$query=mysqli_query($con,"insert into city_gallery set place_id='$p_id',image='$val'") or die("Alert! Query failed.");

}

for($i=0;$i<sizeof($file);$i++)
{
$file=$_FILES["image"]["name"][$i];
move_uploaded_file($_FILES["image"]["tmp_name"][$i],"/upload/" .$file); 
$query=mysqli_query($con,"insert into city_gallery set place_id='$p_id',image='$val'") or die("Alert! Query failed.");
}
于 2013-11-08T07:18:27.387 回答