springmvc图片上传(夹杂普通字段一次性处理)

1.jsp页面

var files = $("#file1").get(0).files[0]; //获取file控件中的内容
 
   var fd = new FormData();
   fd.append("name",param.name.value);
   fd.append("position",param.position.value);
   fd.append("money",param.money.value);
   fd.append("date",param.date.value);
   fd.append("use",param.use.value);
   fd.append("type",param.type.value);
   fd.append("errPic", files);
   $.ajax({
       type: "POST",
       contentType:false, //必须false才会避开jQuery对 formdata 的默认处理 , XMLHttpRequest会对 formdata 进行正确的处理
       processData: false, //必须false才会自动加上正确的Content-Type 
       url: url,
       data: fd,
       success: function (msg) {
          
       },
       error: function (msg) {            
       }
   });

2.controller

// 转型为MultipartHttpRequest(重点的所在)这个就是上面ajax中提到如果直接访问此接口而不加"/",此转型就会报错
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        // 获得第1张图片(根据前台的name名称得到上传的文件)
        MultipartFile file = multipartRequest.getFile("errPic"); //对应  jquery $("#imageFile").get(0).files[index]

获取一般字段仍然用request.getParameter(name);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MVC 下处理 mediumblob 类型字段的图片需要以下几个步骤: 1. 定义一个 POJO 类,用于存储 mediumblob 类型的图片数据,例如: ```java public class Image { private int id; private byte[] data; // 省略 getter 和 setter } ``` 2. 在 DAO 层中定义方法,用于从数据库中获取 mediumblob 类型的图片数据,例如: ```java @Repository public class ImageDaoImpl implements ImageDao { @Autowired private JdbcTemplate jdbcTemplate; @Override public Image getImageById(int id) { String sql = "SELECT * FROM image WHERE id=?"; Image image = jdbcTemplate.queryForObject(sql, new Object[]{id}, new RowMapper<Image>() { @Override public Image mapRow(ResultSet resultSet, int i) throws SQLException { Image image = new Image(); image.setId(resultSet.getInt("id")); image.setData(resultSet.getBytes("data")); return image; } }); return image; } } ``` 3. 在 Service 层中调用 DAO 层的方法,将返回的 mediumblob 类型的图片数据转换成 Java 中的 BufferedImage 类型,例如: ```java @Service public class ImageServiceImpl implements ImageService { @Autowired private ImageDao imageDao; @Override public BufferedImage getImageById(int id) throws IOException { Image image = imageDao.getImageById(id); ByteArrayInputStream bis = new ByteArrayInputStream(image.getData()); BufferedImage bufferedImage = ImageIO.read(bis); return bufferedImage; } } ``` 4. 在 Controller 层中调用 Service 层的方法,将 BufferedImage 类型的图片数据返回给前端页面,例如: ```java @Controller public class ImageController { @Autowired private ImageService imageService; @RequestMapping(value = "/image/{id}", method = RequestMethod.GET) public void getImageById(@PathVariable int id, HttpServletResponse response) throws IOException { BufferedImage bufferedImage = imageService.getImageById(id); response.setContentType("image/png"); OutputStream os = response.getOutputStream(); ImageIO.write(bufferedImage, "png", os); os.close(); } } ``` 这样就可以实现在 SpringMVC处理 mediumblob 类型字段的图片了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值