日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 二进制图片上传_Spring MVC上传图片,Java二进制图片写入数据库,生成略缩图...

發布時間:2024/8/5 java 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 二进制图片上传_Spring MVC上传图片,Java二进制图片写入数据库,生成略缩图... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景描述:最近做到一個項目,有個商品登記功能。登記的信息包括:基本信息若干(文字信息);圖片信息,要求將圖片保存到數據表中的image字段(sql server 數據庫)

步驟:1.將圖片上傳到服務器的一個磁盤目錄下。

2.將剛才上傳好的圖片寫入數據庫image字段。

上傳的支持。

jsp 頁面:

inputtype="file"name="image" />

="submit"value="上傳"class="btn4" />

spring_mvc.xml配置

beanid="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

bean>

Controller:

@RequestMapping("/doUploadFile")publicModelAndView doUploadFile(HttpServletRequest request,HttpServletResponse response,HttpSession session)throwsException,IOException {//轉型為MultipartHttpRequest:

MultipartHttpServletRequest multipartRequest =(MultipartHttpServletRequest) request;獲得文件:

MultipartFile file = multipartRequest.getFile("image");獲得文件名:

String filename =file.getOriginalFilename();

InputStream input=file.getInputStream();String path = "D:/goodsImages";下邊這個path是寫在配置文件里邊的,方便修改,這個方法很長但或得的結果就是路勁D:/goodsImages

String path =ConfigConstants.getInstance()

.get("goods.uploadImage.dir");

File savePath= newFile(path);if (!savePath.exists()) { savePath.mkdir();

}

SaveFileFromInputStream(input,savePath.toString(),filename);

String result= "上傳成功!";

ModelAndView modelAndView= new ModelAndView("goods/uploadSuccess");

modelAndView.addObject("result",result);

modelAndView.addObject("filename"returnmodelAndView;

}

如此上傳就搞定了。

上傳文件補充,另一個方法:

1.項目中導入? jar 包 cos.jar

2.表單:enctype="multipart/form-data"

3.處理方法:主要用到 ?MultipartRequest 類,詳細情況查看:http://www.servlets.com/cos/javadoc/com/oreilly/servlet/MultipartRequest.html

@RequestMapping(value = "/uploadImage.do"public String uploadImage(HttpServletRequest request) Exception {

MultipartRequest mr= null;int maxPostSize = 1 * 100 * 1024;

mr=new MultipartRequest(request,"E:\\goodsImages",maxPostSize,"GBK"return ;

}

二、生成略縮圖。

public voidcreateIcon() {try{

File fiBig= new File("D:/log/tickit.png"); 大圖文件

File foSmall = new File("D:/log/tickitIcon.png"); 將要轉換出的小圖文件

AffineTransform transform= AffineTransform();讀取圖片

BufferedImage bis =ImageIO.read(fiBig);獲得圖片原來的高寬

int w =bis.getWidth();int h =bis.getHeight();double scale = (double) w /h;等比例縮放int nowWidth = 120;int nowHeight = (nowWidth * h) /w;if (nowHeight > 120) {

nowHeight= 120;

nowWidth= (nowHeight * w) /h;

}double sx = (double) nowWidth /double sy = (double) nowHeight /h;

transform.setToScale(sx,sy);

AffineTransformOp ato= new AffineTransformOp(transform,);

BufferedImage bid= BufferedImage(nowWidth,nowHeight,BufferedImage.TYPE_3BYTE_BGR);

ato.filter(bis,bid);

ImageIO.write(bid,"png"catch(Exception e) {

e.printStackTrace();

}

}

三、圖片寫入數據庫。

1.圖片實體類的 圖片字段(picture) 用? byte[]類型

@Entity

@Table(name= "spaq_pic")classGoodsPic {

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

@Column(name= "pic_id"privateLong picId;

@Column(name= "pic_name"String picName;

@Column(name= "pic_descr"String picDescr;

@Column(name= "picture"private byte[] picture;//省略其他字段及get,set方法

}

2.代碼,讀取本地圖片儲存在byte[]中,付給實體類的picture字段,調用 hibernate的save方法保存

/*** hibernate保存圖片到數據表*/@Transactional(readOnly= falsevoid hibsaveImage(GoodsPic gp,String path) {GoodsPic為圖片實體類,path為圖片所在磁盤的路徑

{

InputStream in= ;

in= FileInputStream(path);byte[] b = new [in.available()];

in.read(b);

in.close();

gp.setPicture(b);

myDao.save(gp);

}(Exception e) {

e.printStackTrace();

}

}

[spring如何啟動的?這里結合spring源碼描述了啟動過程](https://www.cnblogs.com/demingblog/p/7443714.html)

[SpringMVC是怎么工作的,SpringMVC的工作原理](https://www.cnblogs.com/demingblog/p/9925268.html)

[spring 異常處理。結合spring源碼分析400異常處理流程及解決方法](https://www.cnblogs.com/demingblog/p/9218271.html)

[Mybatis Mapper接口是如何找到實現類的-源碼分析](https://www.cnblogs.com/demingblog/p/9544774.html)

[使用Netty實現HTTP服務器](https://www.cnblogs.com/demingblog/p/9970772.html)

[Netty實現心跳機制](https://www.cnblogs.com/demingblog/p/9957143.html)

[Netty系列](https://www.cnblogs.com/demingblog/p/9912099.html)

相關文章

總結

如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。

本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。

如您喜歡交流學習經驗,點擊鏈接加入交流1群:1065694478(已滿)交流2群:163560250

總結

以上是生活随笔為你收集整理的java 二进制图片上传_Spring MVC上传图片,Java二进制图片写入数据库,生成略缩图...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。