layui 多图上传到数据库
时间: 2023-08-17 10:16:45 浏览: 112
要将Layui多图上传的图片保存到数据库中,需要进行以下步骤:
1. 在服务器端编写上传接口,接收上传的文件并将其保存到服务器上。
2. 将上传成功的文件路径保存到数据库中。
下面是一个简单的示例代码,用于演示如何将Layui多图上传的图片保存到数据库中。本示例中使用PHP语言和MySQL数据库。
HTML代码:
```html
<div class="layui-upload">
<button type="button" class="layui-btn" id="upload">选择多张图片</button>
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
预览图:
<div class="layui-upload-list" id="preview"></div>
</blockquote>
</div>
```
JavaScript代码:
```javascript
layui.use('upload', function(){
var upload = layui.upload;
//执行实例
var uploadInst = upload.render({
elem: '#upload', //绑定元素
url: '/upload.php', //上传接口
multiple: true, //开启多文件上传
done: function(res){
//上传完毕回调
console.log(res);
//将上传成功的图片路径保存到数据库
$.ajax({
url: '/save.php', //保存接口
type: 'POST',
dataType: 'json',
data: {
url: res.file.url
},
success: function(data){
console.log(data);
},
error: function(){
//请求异常回调
}
});
},
error: function(){
//请求异常回调
}
});
});
```
PHP代码(upload.php):
```php
<?php
//上传文件
$uploadDir = 'uploads/'; //上传目录
if(!file_exists($uploadDir)) {
mkdir($uploadDir);
}
$fileName = $_FILES['file']['name'];
$fileSize = $_FILES['file']['size'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileType = $_FILES['file']['type'];
$fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
$allowedExt = array('jpg', 'jpeg', 'png', 'gif'); //允许上传的文件类型
if(in_array($fileExt, $allowedExt) && $fileSize < 5 * 1024 * 1024) { //限制文件类型和大小
$newFileName = uniqid().'.'.$fileExt;
$destPath = $uploadDir.$newFileName;
if(move_uploaded_file($fileTmpName, $destPath)) {
$data = array(
'code' => 0,
'msg' => '',
'file' => array(
'url' => $destPath
)
);
echo json_encode($data);
} else {
$data = array(
'code' => 1,
'msg' => '上传失败'
);
echo json_encode($data);
}
} else {
$data = array(
'code' => 1,
'msg' => '文件类型不允许或文件大小超过限制'
);
echo json_encode($data);
}
?>
```
PHP代码(save.php):
```php
<?php
//保存图片路径到数据库
$conn = mysqli_connect('localhost', 'root', '123456', 'test');
if(!$conn) {
die('数据库连接失败:'.mysqli_connect_error());
}
$url = $_POST['url'];
$sql = "INSERT INTO images (url) VALUES ('".$url."')";
if(mysqli_query($conn, $sql)) {
$data = array(
'code' => 0,
'msg' => '保存成功'
);
echo json_encode($data);
} else {
$data = array(
'code' => 1,
'msg' => '保存失败:'.mysqli_error($conn)
);
echo json_encode($data);
}
mysqli_close($conn);
?>
```
在本示例中,上传成功后会将图片路径保存到名为images的数据库表中。需要注意的是,本示例代码仅供参考,请根据实际情况进行修改和优化。
阅读全文