PHP实现图片批量上传并添加至数据库 (php图片批量上传加入数据库)
随着互联网的普及,在线图片的需求越来越高,比如电商平台需要上传大量商品图片,社交平台需要上传用户头像等等。在此背景下,图片上传功能成为了一个必备的功能。但是,如果图片的数量较多,一个一个上传显然费时费力,因此批量上传变得越来越受欢迎。
本文将介绍如何使用PHP实现图片批量上传,并将上传的图片信息保存至数据库中。
一、HTML页面设计
我们需要设计一个可以进行图片上传的HTML页面。以下是一个基本的设计:
“`html
“`
这里我们使用了input标签的multiple属性,表示可以同时选择多个文件进行上传。
二、PHP代码实现
接下来,我们需要编写PHP代码实现上传功能。以下是代码的主要实现过程:
1. 检测上传文件是否存在及文件大小
“`php
if(!isset($_FILES[‘files’])) {
exit(‘上传文件未指定’);
}
// 检测文件大小
$size = 1024*1024; // 1MB
foreach($_FILES[‘files’][‘size’] as $value) {
if($value > $size) {
exit(“文件大小不能超过”.$size.”字节”);
}
}
“`
2. 循环处理上传文件
“`php
// 循环处理上传文件
$count = count($_FILES[‘files’][‘name’]);
for($i=0; $i
$filename = $_FILES[‘files’][‘name’][$i];
$tmp_name = $_FILES[‘files’][‘tmp_name’][$i];
$type = $_FILES[‘files’][‘type’][$i];
$size = $_FILES[‘files’][‘size’][$i];
$error = $_FILES[‘files’][‘error’][$i];
if($error > 0) {
echo $filename.”上传失败,错误代码:”.$error.”
“;
} else {
// 文件上传成功
$destination = “./upload/”.$filename; // 上传文件保存的路径
if(move_uploaded_file($tmp_name, $destination)) {
// 上传文件成功,进行数据库操作
} else {
echo $filename.”上传失败!
“;
}
}
}
“`
3. 将上传文件信息添加至数据库
“`php
// 将上传文件信息添加至数据库
$mysqli = @ new mysqli(‘localhost’, ‘root’, ‘password’, ‘test’);
if(mysqli_connect_errno()) {
exit(‘连接数据库失败:’.mysqli_connect_error());
}
for($i=0; $i
$filename = $_FILES[‘files’][‘name’][$i];
$type = $_FILES[‘files’][‘type’][$i];
$size = $_FILES[‘files’][‘size’][$i];
$url = “http://localhost/upload/”.$filename; // 图片的URL地址
// 将文件信息添加至数据库
$stmt = $mysqli->prepare(“INSERT INTO pic (picname, pictype, picsize, picurl) VALUES (?, ?, ?, ?)”);
$stmt->bind_param(“ssis”, $filename, $type, $size, $url);
$stmt->execute();
$stmt->close();
}
$mysqli->close();
“`
三、测试
以上便是的主要代码实现流程,上传成功后,我们可以在数据库中查看上传的文件信息。
需要注意的是,需将文件保存至一个通过Web服务器访问的目录下,否则上传后的文件是无法直接访问的。
结论
通过以上代码实现,我们可以轻松地实现图片批量上传并添加至数据库的功能,提高了上传图片的效率和准确性,同时也方便对图片进行管理和浏览。
当然,以上功能还可以进一步升级,比如加入错误处理、优化图片大小和尺寸等等,让上传图片变得更加强悍和实用。