layui图片上传按钮按着没反应_图片上传——layui+ssm

本文介绍了如何使用layui和SSM实现图片上传功能,包括前端layui弹出层显示表单、文件上传配置、Controller接收文件并保存到指定目录,以及数据库中存储文件名的处理。
摘要由CSDN通过智能技术生成

废话不多说,直接上步骤

先看看效果:

上传成功:

导入相关依赖

commons-fileupload

commons-fileupload

1.3.3

javax.servlet

javax.servlet-api

4.0.1

注:servlet是为了写出文件的时候获取项目路径。

前端利用layui的弹出层显示表单

curIndex = layer.open({

type: 1,

area: ['300px', '300px'],

title: "增加/修改图片信息",

fixed: false, //不固定

maxmin: true,

shadeClose: false,

content: $('#car_image')

});

//表单值

form.val("upload_image", {

"car_id": data.car_id

})

}

注:content属性是打开的那个div

图片上传html

请选择需要上传的图片

编号:

选择文件

开始上传

(重要)文件上传配置:

Controller接收并输出到目录

@RequestMapping("/upload")

@ResponseBody

public String upload(@RequestParam("file") CommonsMultipartFile file,@RequestParam("carId") int carId, HttpServletRequest request, Model model) throws IOException {

JsonUtil fileJson = new JsonUtil();

ObjectMapper objectMapper = new ObjectMapper();

//获取文件名 : file.getOriginalFilename();

String uploadFileName = file.getOriginalFilename();

//如果文件名为空,返回失败!

if ("".equals(uploadFileName)){

fileJson.setCode(1);

return objectMapper.writeValueAsString(fileJson);

}

//获取上传文件名的后缀

String[] splitStr = uploadFileName.split("\\.");

String suffix = splitStr[splitStr.length - 1];

String fileName = System.currentTimeMillis() + "." + suffix;

//上传路径保存设置

String path = request.getSession().getServletContext().getRealPath("/car_images");

//如果路径不存在,创建一个

File realPath = new File(path);

if (!realPath.exists()){

realPath.mkdir();

}

InputStream is = file.getInputStream();

OutputStream os = new FileOutputStream(new File(realPath,fileName));

//读取写出

int len=0;

byte[] buffer = new byte[1024];

while ((len=is.read(buffer))!=-1){

os.write(buffer,0,len);

os.flush();

}

os.close();

is.close();

int i = carService.addFile(carId, fileName);

if (i >0){

fileJson.setCode(0);

return objectMapper.writeValueAsString(fileJson);

}else {

fileJson.setCode(1);

return objectMapper.writeValueAsString(fileJson);

}

}

数据库存放的是该图片的名称+后缀,用于前端显示图片。

数据及图片显示就是layui的table。

标签:String,fileJson,layui,ssm,file,new,上传,objectMapper

来源: https://www.cnblogs.com/Mr-hanexp/p/13304837.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是SSM+Layui实现图片上传的前后端代码。 1. HTML页面代码 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片上传</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md6"> <form class="layui-form" action="/upload" method="post" enctype="multipart/form-data"> <div class="layui-form-item"> <label class="layui-form-label">选择图片</label> <div class="layui-input-block"> <input type="file" name="file" lay-verify="required" class="layui-upload-file"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="formDemo">上传</button> </div> </div> </form> </div> </div> </div> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> </body> </html> ``` 2. Java Controller代码 ```java package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.util.ResourceUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @Controller public class UploadController { @RequestMapping("/") public String index() { return "upload"; } @PostMapping("/upload") @ResponseBody public String upload(MultipartFile file, HttpServletRequest request) { if (file.isEmpty()) { return "请选择文件"; } String fileName = file.getOriginalFilename(); String suffixName = StringUtils.getFilenameExtension(fileName); String filePath; try { filePath = ResourceUtils.getURL("classpath:").getPath() + "static/upload/"; } catch (FileNotFoundException e) { e.printStackTrace(); return "上传失败"; } File dest = new File(filePath + fileName); if (!dest.getParentFile().exists()) { dest.getParentFile().mkdirs(); } try { file.transferTo(dest); return "上传成功"; } catch (IOException e) { e.printStackTrace(); return "上传失败"; } } } ``` 3. Java配置文件代码 ```java package com.example.demo.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } } ``` 4. 后端pom.xml配置 在 pom.xml 文件中添加以下依赖: ```xml <!--layui依赖--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-ui</artifactId> <version>${ruoyi.version}</version> </dependency> ``` 5. 前端layui模块的引入 在 HTML 页面中引入以下模块: ```html <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> ``` 以上就是用SSM+Layui实现图片上传的前后端代码,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值