帮我写一份使用layui上传图片到controller处理后传到数据库的代码
时间: 2023-06-12 14:07:39 浏览: 116
好的,以下是使用 layui 上传图片到 controller 处理后传到数据库的代码示例:
前端页面代码:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上传图片</title>
<link rel="stylesheet" href="/layui/css/layui.css">
</head>
<body>
<div class="layui-upload">
<button type="button" class="layui-btn" id="test1">上传图片</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1">
<p id="demoText"></p>
</div>
</div>
<script src="/layui/layui.js"></script>
<script>
//执行实例
layui.use('upload', function(){
var upload = layui.upload;
//上传图片
var uploadInst = upload.render({
elem: '#test1', //绑定元素
url: '/upload/image', //上传接口
accept: 'images',
exts: 'jpg|jpeg|png|gif', //允许上传的文件类型
size: 1024*5, //上传文件的大小限制
done: function(res){
//上传完毕回调
if(res.code == 0){
$('#demo1').attr('src', res.data.src);
$('#demoText').html('上传成功');
} else {
$('#demoText').html('上传失败');
}
},
error: function(){
//请求异常回调
$('#demoText').html('上传失败');
}
});
});
</script>
</body>
</html>
```
Controller 中处理图片上传的代码:
```
@RequestMapping("/upload/image")
@ResponseBody
public Map<String, Object> uploadImage(HttpServletRequest request) {
Map<String, Object> resultMap = new HashMap<>();
try {
// 上传文件到服务器
String path = request.getSession().getServletContext().getRealPath("/") + "upload/";
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("file");
String fileName = file.getOriginalFilename();
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
String newFileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + suffix;
File dest = new File(path + newFileName);
file.transferTo(dest);
// 把图片信息保存到数据库
Image image = new Image();
image.setFilename(newFileName);
image.setUrl("/upload/" + newFileName);
imageService.saveImage(image);
resultMap.put("code", 0);
resultMap.put("msg", "上传成功");
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("src", "/upload/" + newFileName);
resultMap.put("data", dataMap);
} catch (Exception e) {
resultMap.put("code", -1);
resultMap.put("msg", "上传失败");
}
return resultMap;
}
```
上述代码中,我们使用 layui 中的 upload 模块来实现图片上传功能,上传的文件会通过 ajax 提交到后端的 /upload/image 接口进行处理。在 Controller 中,我们使用 MultipartHttpServletRequest 对象来获取上传的文件,并将文件保存到服务器的指定目录中。此外,我们还根据业务需求将图片信息保存到了数据库中。
注意:上述代码中的 Image 类仅作为示例,需要根据实际业务来修改。
阅读全文