最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springMVC?MultipartFile上傳圖片時(shí)如何修改圖片大小

 更新時(shí)間:2023年12月05日 15:09:29   作者:RiceTZ  
這篇文章主要介紹了springMVC?MultipartFile上傳圖片時(shí)如何修改圖片大小問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

引言

服務(wù)器配置比較低,打開網(wǎng)站時(shí)加載1MB+的圖片 速度很慢,影響客戶體驗(yàn)。

所以從網(wǎng)上找了java修改圖片大小的方法,這里記錄一下 以備以后不時(shí)之需。

我這里設(shè)置的是寬240,,高135 按照16:9的比例設(shè)置。

修改之后的圖片大小在100kb左右

16:9的比例其他參數(shù):

3840×2160  2560X1440 1920×1080 1600×900 1366×768 1280×720 1024×576

960×540 854×480 720×405 640×360 480×270 320×180

代碼

@RequestMapping("/admin/fileUpload")
	@ResponseBody
	public Map<String, Object> fileUpload(HttpServletRequest request,
			@RequestParam("uploadFile") MultipartFile uploadFile){
		Map<String, Object> map = new HashMap<String, Object>();
		try {
			//原文件名后綴
			String fileEnd = FilenameUtils.getExtension(uploadFile.getOriginalFilename());
			//新文件名以uuid為名
			String fileUUID = CommonsUtil.getUUID();
			//獲取當(dāng)前項(xiàng)目部署的地址,也可以直接指定路徑,D://blogFile//xx.jpg
			//String realPath = request.getSession().getServletContext().getRealPath("http://blogFile//"+TimeUtil.curYearMonthDay());
			String realPath = "C://blogFile//"+TimeUtil.curYearMonthDay();
			File dirs=new File(realPath);
			if(!dirs.exists()){//判斷文件夾是否存在 
				System.out.println("文件夾不存在,進(jìn)行創(chuàng)建。");
				dirs.mkdirs();//不存在就創(chuàng)建
			}
			//創(chuàng)建file對象,新地址新名稱 原上傳圖片所需
			//File newFile=new File(realPath,fileUUID+"."+fileEnd);
 
			//上傳圖片時(shí)對圖片按照16:9的比例壓縮240*135
			//讀取圖片
			BufferedInputStream in = new BufferedInputStream(uploadFile.getInputStream());
			//字節(jié)流轉(zhuǎn)圖片對象
			Image bi =ImageIO.read(in);
			//構(gòu)建圖片流 按照16:9的比例 設(shè)置寬高 240*135 
            //寬240 高135 我這里直接寫死了 也可以寫成參數(shù)形式的。
			BufferedImage tag = new BufferedImage(240, 135, BufferedImage.TYPE_INT_RGB);
			//繪制改變尺寸后的圖
			tag.getGraphics().drawImage(bi, 0, 0, 240, 135, null);  
			//輸出流
			BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(realPath+"http://"+fileUUID+"."+fileEnd));
			ImageIO.write(tag, fileEnd,out);
			in.close();
			out.close();
			//原上傳圖片方法
			//uploadFile.transferTo(newFile);
			//FileUtils.copyInputStreamToFile(uploadFile.getInputStream(), newFile);//第二種原上傳圖片方法
			System.out.println("圖片地址:"+realPath+"http://"+fileUUID+"."+fileEnd);
			map.put("sign", "success");
		} catch (Exception e) {
			e.printStackTrace();
			map.put("sign", "error");
			map.put("msg", e.toString());
		}
		return map;
	}

一點(diǎn)小建議

因?yàn)閖ava是跨語言 所以路徑符最好使用/

  • 在java中路徑一般用"/"
  • windows中的路徑一般用"\"
  • linux、unix中的路徑一般用"/"

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaWeb中的Cookie和Session解讀

    JavaWeb中的Cookie和Session解讀

    這篇文章主要介紹了JavaWeb中的Cookie和Session解讀,Cookie是servlet發(fā)送到Web瀏覽器的少量信息,該信息由瀏覽器保存,然后發(fā)送回服務(wù)器,一般情況下,Cookie是以鍵值對進(jìn)行表示的,Cookie的值可以唯一地標(biāo)識客戶端,因此Cookie常用于會(huì)話管理,需要的朋友可以參考下
    2023-10-10
  • SpringBoot控制配置類加載順序方式

    SpringBoot控制配置類加載順序方式

    這篇文章主要介紹了SpringBoot控制配置類加載順序方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解Spring如何解析占位符

    詳解Spring如何解析占位符

    Spring一直支持將屬性定義到外部的屬性的文件中,并使用占占位符的形式為使用"${}"包裝的屬性名稱,為了使用屬性占位符,我們必須配置一個(gè)PropertyPlaceholderConfigurer或PropertySourcesPlaceholderConfigurer實(shí)例,本文將介紹如何解析占位符
    2021-06-06
  • SpringMVC中MultipartFile轉(zhuǎn)File的兩種方式

    SpringMVC中MultipartFile轉(zhuǎn)File的兩種方式

    在spring上傳文件中,一般都使用了MultipartFile來接收,但是有需要用到File的地方,本文主要介紹了SpringMVC中MultipartFile轉(zhuǎn)File的兩種方式,感興趣的可以了解一下
    2022-04-04
  • SpringBoot生產(chǎn)環(huán)境和測試環(huán)境配置分離的教程詳解

    SpringBoot生產(chǎn)環(huán)境和測試環(huán)境配置分離的教程詳解

    這篇文章主要介紹了SpringBoot生產(chǎn)環(huán)境和測試環(huán)境配置分離的教程詳解,需要的朋友可以參考下
    2020-08-08
  • 使用JVM常用GC日志打印參數(shù)

    使用JVM常用GC日志打印參數(shù)

    這篇文章主要介紹了使用JVM常用GC日志打印參數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • idea編譯器工程out目錄修改方法步驟

    idea編譯器工程out目錄修改方法步驟

    多個(gè)工程在一個(gè)文件夾下,有時(shí)會(huì)變?yōu)樗械墓こ讨挥靡粋€(gè)out文件夾,這時(shí)運(yùn)行會(huì)出錯(cuò),所以本文就來介紹一下out目錄修改,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • MyBatis中resultType和resultMap的用法及說明

    MyBatis中resultType和resultMap的用法及說明

    MyBatis通過resultType和resultMap將SQL查詢結(jié)果映射為Java對象,resultType適用于簡單類型或完全匹配的Java類,resultMap則用于處理列名和屬性名不一致的情況
    2025-12-12
  • Java應(yīng)用程序CPU100%問題排查優(yōu)化實(shí)戰(zhàn)

    Java應(yīng)用程序CPU100%問題排查優(yōu)化實(shí)戰(zhàn)

    這篇文章主要介紹了如何排查和優(yōu)化Java應(yīng)用程序CPU使用率達(dá)到100%的問題,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2025-02-02
  • 完美解決PermGen space異常的問題

    完美解決PermGen space異常的問題

    這篇文章主要介紹了完美解決PermGen space異常的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評論

邯郸县| 余干县| 石柱| 濮阳县| 阿克陶县| 柘荣县| 茌平县| 昌乐县| 莱阳市| 普安县| 营山县| 滕州市| 沛县| 洪洞县| 治多县| 北京市| 陆丰市| 齐河县| 锡林浩特市| 菏泽市| 交城县| 隆安县| 苍南县| 富平县| 罗定市| 农安县| 云南省| 得荣县| 贡山| 商丘市| 武威市| 平果县| 嘉黎县| 松滋市| 湘西| 溧水县| 当阳市| 涪陵区| 青浦区| 宿州市| 卫辉市|