将多个图像上传到服务器文件夹
我有一个表单,用户可以通过它将图像上传到服务器文件夹,并将路径保存到数据库中。将多个图像上传到服务器文件夹
当前用户只能输入一个图像时,我的代码工作正常;然而,我想要做的事就像形式的下,让用户可以上传多张图片:
<form class="form-horizontal" role="form" action="insertimage.php?id=<?php echo $_GET['id']; ?>" enctype="multipart/form-data" method="post">
<div class="col-md-6">
<div class="form-group">
<label class="col-lg-4 control-label">Select Image 1</label>
<div class="col-lg-6">
<input type="file" name="file" id="fileToUpload">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-lg-4 control-label">Select Image 2</label>
<div class="col-lg-6">
<input type="file" name="file1" id="fileToUpload">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-lg-4 control-label">Select Image 3</label>
<div class="col-lg-6">
<input type="file" name="file2" id="fileToUpload">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"></label>
<div class="col-md-8">
<input class="btn btn-primary" value="Save Changes" type="submit" name="submit">
</div>
</div>
</div>
</form>
的PHP代码在后端上传一个图片是insertimage.php
:
<?php
$file_exts = array("jpg", "bmp", "jpeg", "gif", "png");
$upload_exts = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($upload_exts, $file_exts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
// Enter your path to upload file here
if (file_exists("uploads/" .$_FILES["file"]["name"]))
{
echo "<div class='error'>"."(".$_FILES["file"]["name"].")"." already exists. "."</div>";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],"uploads/" . $_FILES["file"]["name"]);
echo "<div class='sucess'>"."Stored in: " . "uploads/" . $_FILES["file"]["name"]."</div>";
` }
}
}
else
{
echo "<div class='error'>Invalid file</div>";
}
?>
任何人都可以请告诉我如何在上述代码的帮助下支持上传3张图片?
您可以同时使用多个图像文件阵列具有多个属性,如HTML行:
<input type="file" name="file[]" id="fileToUpload" multiple />
这会给你的文件的数组,你可以通过
print_r($_FILES);
调试
而且你还必须更改保存数据的代码,因为有错误,它一次只能有一个文件尝试循环我的调试
$_FILES
有了这个,你可以用用ctrl
<input type="file" name="file[]" id="fileToUpload" multiple />
的在服务器端使用循环来选择多个图像
for ($1=0;i<count($dataFile);$i++){
//your upload code ;
$_FILES["file"]["name"][$i];//go for each and every i position for all
}
我希望用户只能上传5张图片,那么这些代码也可以使用吗? – user3789102 2014-11-25 04:25:03
是这个代码运行的总数没有选定的图像,如果修复5个图像,你必须在php代码端更改计数为5 – Affan 2014-11-25 04:26:40
我想单独上传的图像,所以那种避免使用多个关键字 – user3789102 2014-11-25 04:21:21
如果你想避免多个关键字,那么你必须添加文件标签,尽可能多的时间你想上传图像,并且你必须通过相同的文件名,所以它创建一个数组,它会解决你的问题 – Affan 2014-11-25 04:37:01
最多5个文件,你会在视图级别验证输入只需要5个文件。 – 2014-11-25 05:43:05