ssm实现图片上传

Posted xqlover

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssm实现图片上传相关的知识,希望对你有一定的参考价值。

在使用ssm完成前后端对接时,总免不了前台传过来的文件问题,而html中的<input>框直接使用时,往往会获取不到路径,今天在完成图片上传后的来做个总结

 

首先,前台页面

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>图片上传</title>
 6     </head>
 7     <body>
 8         <h2>图片上传</h2>
 9     <form action="save/saveImg" method="post" enctype="multipart/form-data">
10         图片:<input type="file"  name="upload"/><br/>
11         <input type="submit" value="提交"/>
12     </form>
13     </body>
14 </html>

 

 

配置图片解析

 

1 <!-- 配置文件上传视图解析器 -->
2     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
3         <property name="maxUploadSize" value="10485760"></property>
4         <property name="defaultEncoding" value="utf-8"></property>
5     </bean>

其中 maxUploadSize 是限制上传的图片最大字节  defaultEncoding是设定上传图片编码

service接口

1 package com.sp.service;
2 
3 import org.springframework.web.multipart.MultipartFile;
4 
5 public interface FileService {
6 
7     void upLoadFile(MultipartFile upload);
8 }

 

实现类

 1 package com.sp.serviceImpl;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 
 6 import org.springframework.stereotype.Service;
 7 import org.springframework.web.multipart.MultipartFile;
 8 
 9 import com.sp.service.FileService;
10 
11 @Service
12 public class FileServiceImpl implements FileService {
13 
14     private String filePath="D:/img/"; //定义上传文件的存放位置
15     @Override
16     public void upLoadFile(MultipartFile upload) {
17         
18         String fileName = upload.getOriginalFilename();  //获取上传文件的名字
19         //判断文件夹是否存在,不存在则创建
20         File file=new File(filePath); 
21         
22         if(!file.exists()){
23             file.mkdirs();
24         }
25         
26         String newFilePath=filePath+fileName; //新文件的路径
27         
28         try {
29             upload.transferTo(new File(newFilePath));  //将传来的文件写入新建的文件
30             
31         } catch (IllegalStateException | IOException e) {
32             e.printStackTrace();
33         }
34 
35     }
36 
37 }

 

控制层

 1 package com.sp.controller;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Controller;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.ResponseBody;
 7 import org.springframework.web.multipart.MultipartFile;
 8 
 9 import com.sp.service.FileService;
10 
11 @Controller
12 @RequestMapping("/save")
13 public class FileController {
14 
15     @Autowired
16     private FileService fileService;
17     
18     @RequestMapping("/saveImg")
19     @ResponseBody
20     public String saveImg(MultipartFile upload){
21         fileService.upLoadFile(upload);
22         return "ok";
23     }
24 }

 

效果演示

技术分享图片

选择图片

技术分享图片

提交后看我的d盘目录

 

技术分享图片

 

本案例只是简单的演示,后台可以对上传的图片名称或者大小或者有无尺寸进行判断,从而可以避免传入无效数据,同时亦可以将自己所保存的路径进行相应的修改后存入数据库,便于以后数据的回显.

 

以上是关于ssm实现图片上传的主要内容,如果未能解决你的问题,请参考以下文章

ssm框架实现图片上传显示并保存地址到数据库

ssm整合-图片上传功能(转)

Java后端开发-SSM框架的图片上传

ssm+ajax+mysql带图片表单上传(路径上传)

学习模仿天猫商城毕业设计SSM商城系统笔记

SSM框架之文件上传