这几天偷偷摸摸的搞了一套layui ,整合起来感觉测试起来心情都变好了,便于以后再写其他功能方便测试。看看样子:
以直男审美来看,还是挺不错的~~只是集成了部分功能元素,以后需要的话再往上慢慢添加,今天记录文件上传~
我没有用layui自带的代码实现文件上传前端页面,而是自己写的html.
<form method="POST" enctype="multipart/form-data" action="/file/upload"> 文件:<input type="file" name="file" /> <button class="layui-btn" type="submit">上传</button> </form>
但是button用的layui的样式 为了好看一点。
看controller
package com.learn.paomo.controller; import com.learn.paomo.util.FileUtil; import com.learn.paomo.util.JsonResult; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @Controller @RequestMapping(value="/file") public class FileUploadController { @RequestMapping(value="/upload") @ResponseBody public JsonResult upload(@RequestParam("file") MultipartFile file, HttpServletRequest request){ JsonResult jr=new JsonResult(); String fileName = file.getOriginalFilename(); String filePath = request.getSession().getServletContext().getRealPath("fileupload/"); try { FileUtil.uploadFile(file.getBytes(), filePath, fileName); jr.setFlag(true); jr.setMsg("上传成功"+fileName); } catch (Exception e) { jr.setMsg("上传失败"); jr.setFlag(false); } return jr; } }
其中JsonResult是我自己封装的一个返回类,返回json对象的,这个可以忽略,与本章记录无关!!
package com.learn.paomo.util; public class JsonResult { public boolean flag; public String msg; public Object model; public boolean getFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getModel() { return model; } public void setModel(Object model) { this.model = model; } }
还有一个类,是自己写的一个util类,对不起,掌嘴!!不是自己写的,网上扒的,我忘了哪篇博客了,对不起。我回头找找。
https://blog.youkuaiyun.com/change_on/article/details/59529034这个博主写的,在此非常感谢博主, 我也只是学习学习。(侵删,学习笔记)
package com.learn.paomo.util; import java.io.File; import java.io.FileOutputStream; public class FileUtil { public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception { File targetFile = new File(filePath); if(!targetFile.exists()){ targetFile.mkdirs(); } FileOutputStream out = new FileOutputStream(filePath+fileName); out.write(file); out.flush(); out.close(); } }
感觉还是很简洁的。
然后在src-main目录下创建webapp文件夹,然后在webapp下创建fileupload文件夹
然后测试一下:
点击上传
然后那个文件夹下看看
接下来就是一波小福利了,哈哈哈哈哈~~
打开这个图片瞅瞅:
补充:差点忘了,如果文件上传过大,会报错……需要再application.yml文件里配置一下(yml 和properties文件都一样,格式不同)
spring: servlet: multipart: max-file-size: 30mb max-request-size: 30mb
亲测可用,max-file-size是单个文件限制,max-request-size限制总共上传文件大小。
ojbk!下篇继续福利,请注意我是为了日后回顾这些笔记的时候不至于这么枯燥,哈哈哈哈哈隔~