SpringMVC之MultipartHttpServletRequest上传图片与其他表单信息---初级

来源:互联网 发布:优化营商环境重要意义 编辑:程序博客网 时间:2024/05/12 03:08

事先准备:

1、导入相关jar包


2、在SpringMVC-servelt添加相关配置信息(ps:这里我使用的版本为Spring4.1.0


如果默认条件:<bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 

开始:

前端页面:


上面的代码仅仅作为参考,一定要加上enctype="multipart/form-data",不然controllers中只能拿到图片的名字

后台:

package ourmarket.controllers;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.sql.Timestamp;import java.util.Date;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;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 org.springframework.web.multipart.MultipartHttpServletRequest;import ourmarket.models.Goods;import ourmarket.models.ImageLibrary;import ourmarket.services.IGoodService;import ourmarket.services.IImageLibraryService;import sun.invoke.empty.Empty;@Controllerpublic class GoodsPutaway {@RequestMapping("goodsPutaway")public String index(HttpServletRequest request, Model model, String goodsName, String goodsPrice, String goodsNum,String goodsDes, Short glocation) throws IllegalStateException, IOException {if ((goodsName == null) || (goodsDes == null) || (goodsNum == null) || (goodsPrice == null)) {return "goodsPutaway";}if (request instanceof MultipartHttpServletRequest) {MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;// 获得第1张图片(根据前台的name名称得到上传的文件)MultipartFile imgFile1 = multipartHttpServletRequest.getFile("Photo");if (!imgFile1.isEmpty()) {//获取前端传来的文件名String fileName = imgFile1.getOriginalFilename();String SQLBasePath="goodsImg";//拿到本地服务器会话位置---可以是绝对地址String realPath = request.getSession().getServletContext().getRealPath("/") + "\\"+SQLBasePath;Date date = new Date();// 自定义的文件名称---防止覆盖以前String trueFileName = date.getYear() + date.getMonth() + date.getDay() + date.getHours()+ date.getMinutes() + fileName;// 设置存放图片文件的路径String path = realPath + trueFileName;try {//利用文件流保存文件imgFile1.transferTo(new File(path));} catch (Exception e) {}}}return "shelvedGoods";}}

作为基础代码,我仅仅想给刚接触这的朋友提供一个简单的例子,帮助其快速的入门。
上边代码我去掉了大部分其他数据库代码 仅保留了关于储存图片方面的,我的代码也有漏洞及不合理地方,能给新朋友一点帮助我也很开心。
有什么更好的建议请一定要提出来,万分感谢!




阅读全文
1 0