亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springMVC?MultipartFile上傳圖片時如何修改圖片大小

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

引言

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

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

我這里設(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)前項目部署的地址,也可以直接指定路徑,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);
 
			//上傳圖片時對圖片按照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;
	}

一點小建議

因為java是跨語言 所以路徑符最好使用/

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

總結(jié)

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

相關(guān)文章

  • java:程序包org.junit不存在解決辦法詳析

    java:程序包org.junit不存在解決辦法詳析

    這篇文章主要給大家介紹了關(guān)于java:程序包org.junit不存在解決辦法的相關(guān)資料,這個錯誤通常發(fā)生在使用JUnit測試時,因為缺少JUnit庫的依賴,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Spring Boot詳細(xì)打印啟動時異常堆棧信息詳析

    Spring Boot詳細(xì)打印啟動時異常堆棧信息詳析

    這篇文章主要給大家介紹了關(guān)于Spring Boot詳細(xì)打印啟動時異常堆棧信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼

    java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼

    這篇文章主要介紹了java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 詳解Java中的字節(jié)碼增強(qiáng)技術(shù)

    詳解Java中的字節(jié)碼增強(qiáng)技術(shù)

    字節(jié)碼增強(qiáng)技術(shù)就是一類對現(xiàn)有字節(jié)碼進(jìn)行修改或者動態(tài)生成全新字節(jié)碼文件的技術(shù)。本文將通過示例詳細(xì)說說Java的字節(jié)碼增強(qiáng)技術(shù),需要的可以參考一下
    2022-10-10
  • spring?boot自帶的page分頁問題

    spring?boot自帶的page分頁問題

    這篇文章主要介紹了spring?boot自帶的page分頁問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java?jar打包成exe應(yīng)用程序的詳細(xì)步驟

    Java?jar打包成exe應(yīng)用程序的詳細(xì)步驟

    本文主要介紹了Java?jar打包成exe應(yīng)用程序的詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Netty源碼分析NioEventLoop執(zhí)行select操作入口

    Netty源碼分析NioEventLoop執(zhí)行select操作入口

    這篇文章主要介紹了Netty源碼分析NioEventLoop執(zhí)行select操作入口,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • MyBatis-Plus 如何實現(xiàn)連表查詢的示例代碼

    MyBatis-Plus 如何實現(xiàn)連表查詢的示例代碼

    這篇文章主要介紹了MyBatis-Plus 如何實現(xiàn)連表查詢的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • SpringMVC中日期格式的轉(zhuǎn)換

    SpringMVC中日期格式的轉(zhuǎn)換

    本文主要介紹了SpringMVC中日期格式轉(zhuǎn)換的相關(guān)知識:用來解決日期提交轉(zhuǎn)換異常的問題。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • SSL證書部署+SpringBoot實現(xiàn)HTTPS安全訪問的操作方法

    SSL證書部署+SpringBoot實現(xiàn)HTTPS安全訪問的操作方法

    文章介紹了SSL和HTTPS的工作原理,包括握手階段和安全數(shù)據(jù)傳輸階段,通過模擬HTTPS請求,展示了如何生成自簽名證書并配置Spring Boot應(yīng)用程序以支持HTTPS,總結(jié)指出,SSL和HTTPS對于保護(hù)網(wǎng)絡(luò)安全至關(guān)重要,感興趣的朋友一起看看吧
    2025-02-02

最新評論