web加载mysql二进制图片_JavaWeb实现图片异步上传,在前台展示,并以二进制保存到数据库...

该博客介绍了如何使用JavaWeb实现图片的异步上传,将图片以二进制形式保存在session中,然后展示在前台,并最终将图片二进制数据保存到MySQL数据库。
摘要由CSDN通过智能技术生成

后台Controller

/**

* 上传图片到session

* @param response

* @param request

*/

@RequestMapping(value = "/upImg.aj", method = RequestMethod.POST)

public void upImgSession(HttpServletResponse response, HttpServletRequest request, HttpSession httpSession) {

//获取图片

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

//根据前台name名称得到上传的文件

MultipartFile img = multipartRequest.getFile("upfile");

//定义一个数组,用于保存可上传的文件类型

List fileTypes = new ArrayList();

fileTypes.add("jpg");

fileTypes.add("jpeg");

fileTypes.add("bmp");

fileTypes.add("png");

String fileName = img.getOriginalFilename();

Long id=null;

ResultModel rm=null;

if(!(fileName==null ||"".equals(fileName))){

String extensionName = fileName.substring(fileName.lastIndexOf(".")+1);

if(fileTypes.contains(extensionName)){

//扩展名合法

try{

id = System.currentTimeMillis();

byte[] content=img.getBytes();

String extension="image/"+extensionName;

WjbDO wjbDO = new WjbDO(content,extension,id);

httpSession.setAttribute("curImg",wjbDO);

}catch (IOException e){

e.printStackTrace();

}

rm=new ResultModel(id.toString(), 1);

}

}else{

rm=new ResultModel("长传失败", 0);

}

ResponseBuilder rb = new ResponseBuilder();

try {

rb.writeJsonResponse(response,rm);

}catch (IOException e){

log.info("IOException",e);

}

}

/**

* 从session请求图片二进制流

* @param response

* @param request

*/

@RequestMapping(value = "/getCurImg.aj", method = RequestMethod.GET)

public String getCurImg(HttpServletResponse response,HttpServletRequest request,HttpSession httpSession) {

WjbDO wjbDO = (WjbDO)httpSession.getAttribute("curImg");

//设置文件格式

response.setContentType(wjbDO.getExtension());

try{

OutputStream out = response.getOutputStream();

out.write(wjbDO.getContent());

out.close();

}catch (IOException e){

log.error("输出图片流失败",e);

}

return null;

}

/**

* 确认保存后提交图片到数据库

* @param response

*/

@RequestMapping(value = "/zcdj.aj", method = RequestMethod.POST)

public void zcdjSave(HttpServletResponse response, HttpServletRequest request,HttpSession httpSession) {

//保存上传图片

WjbDO wjbDO = (WjbDO)httpSession.getAttribute("curImg");

if (wjbDO!=null){

zcModel.setImg(wjbDO.getId());

wjService.saveWj(wjbDO);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值