springboot 上传_spring需要什么基础

(4) 2024-08-06 12:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
springboot 上传_spring需要什么基础,希望能够帮助你!!!。

1.文件保存在服务器,url地址保存在数据库
 /** * 1.文件保存在服务器,url地址保存在数据库 * 上传成功之后返回成功保存的url地址 */ @PostMapping("/upload") public @ResponseBody String upload(@RequestParam MultipartFile file, HttpServletRequest request){ 
    if(!file.isEmpty()){ 
    String uploadPath = "C:\\uploadFile"; // 如果目录不存在则创建 File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { 
    uploadDir.mkdir(); } String OriginalFilename = file.getOriginalFilename();//获取原文件名 String suffixName = OriginalFilename.substring(OriginalFilename.lastIndexOf("."));//获取文件后缀名 //重新随机生成名字 String filename = UUID.randomUUID().toString() +suffixName; File localFile = new File(uploadPath+"\\"+filename); try { 
    file.transferTo(localFile); //把上传的文件保存至本地 /** * 这里应该把filename保存到数据库,供前端访问时使用 */ return filename;//上传成功,返回保存的文件地址 }catch (IOException e){ 
    e.printStackTrace(); System.out.println("上传失败"); return ""; } }else{ 
    System.out.println("文件为空"); return ""; } } 
2.直接把文件以二进制形式保存到数据库中数据类型为blob的一个字段
/** *上传图片,使用mybatis-plus保存到数据库 *User为实体类,数据库对应user表,有id、image两个属性 */ @PostMapping("/upload") @ResponseBody public String upload(@RequestParam("file") MultipartFile file) throws Exception{ 
    if(!file.isEmpty()){ 
    User user=new User(); user.setImage(file.getBytes()); userMapper.insert(user); } return "ok"; } /** *前端通过id获取数据库中的图片 */ @GetMapping("/getImage") @ResponseBody public void getImage(String id,HttpServletResponse resp) throws Exception{ 
    User user=userMapper.selectById(id); byte[] image = (byte[])user.getImage(); resp.setContentType("image/jpeg"); ServletOutputStream out = resp.getOutputStream(); out.write(image); out.flush(); out.close(); } 
3.前端代码
<form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" /><br/> <input type="submit" name="" id="" value="提交" /> </form> 

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复