Java實(shí)現(xiàn)的圖片上傳工具類(lèi)完整實(shí)例
本文實(shí)例講述了Java實(shí)現(xiàn)的圖片上傳工具類(lèi)。分享給大家供大家參考,具體如下:
package com.gcloud.common;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
/**
* 圖片上傳工具類(lèi)
* Created by charlin on 2017/9/10.
*/
public class UploadImageUtil {
private String fileType;
private Long maxSize;
private Long width;
private Long height;
public UploadImageUtil() { }
public UploadImageUtil(String fileType, Long maxSize, Long width, Long height) {
this.fileType = fileType;
this.maxSize = maxSize;
this.width = width;
this.height = height;
}
/**
* 檢查上傳圖像大小
*
* @param upload
* @param uploadFileName
* @param uploadContentType
* @return
*/
public String checkUploadImage(File upload, String uploadFileName, String uploadContentType) {
try {
if (fileType != null) {
String[] fileTypes = fileType.split(",");
int count = 0;
for (int i = 0; i < fileTypes.length; i++) {
if (uploadContentType.equals(fileTypes[i])) {
count++;
continue;
}
}
if (count == 0) {
return "您上傳的文件類(lèi)型不對(duì)!";
}
}
BufferedImage bi = ImageIO.read(upload);
int w = bi.getWidth();
int h = bi.getHeight();
if (w > width || h > height) {
return "上傳照片寬度和高度不符合要求";
}
if (upload.length() > maxSize) {
return "上傳照片過(guò)大";
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 圖片上傳
*
* @param upload
* @param uploadFileName
* @param path
* @return
* @throws Exception
*/
public void uploadImage(File upload, String uploadFileName, String path) throws Exception {
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(upload);
File f = new File(path);
if (!f.exists()) f.mkdirs();
os = new FileOutputStream(path + "/" + uploadFileName);
byte buffer[] = new byte[1024];
int count = 0;
int flag = 0;
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count);
}
} catch (FileNotFoundException e) {
} catch (IOException e) {
File f = new File(path + "/" + uploadFileName);
if (f.exists()) {
f.delete();
}
} finally {
try {
os.close();
is.close();
} catch (IOException ioe) {
}
}
}
/**
* 清除文件
* @param path
*/
public void clear(String path) {
File file = new File(path);
if (file.isFile() && file.exists()) {
file.delete();
}
}
public String getFileType() {
return fileType;
}
public void setFileType(String fileType) {
this.fileType = fileType;
}
public Long getMaxSize() {
return maxSize;
}
public void setMaxSize(Long maxSize) {
this.maxSize = maxSize;
}
public Long getWidth() {
return width;
}
public void setWidth(Long width) {
this.width = width;
}
public Long getHeight() {
return height;
}
public void setHeight(Long height) {
this.height = height;
}
}
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java圖片操作技巧匯總》、《java日期與時(shí)間操作技巧匯總》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》及《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》。
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
- Java實(shí)現(xiàn)圖片上傳到服務(wù)器并把上傳的圖片讀取出來(lái)
- java web圖片上傳和文件上傳實(shí)例
- java通過(guò)模擬post方式提交表單實(shí)現(xiàn)圖片上傳功能實(shí)例
- Java以struts2為例介紹如何實(shí)現(xiàn)圖片上傳
- JavaWeb實(shí)現(xiàn)裁剪圖片上傳完整代碼
- Java圖片上傳實(shí)現(xiàn)代碼
- java使用CKEditor實(shí)現(xiàn)圖片上傳功能
- 微信 java 實(shí)現(xiàn)js-sdk 圖片上傳下載完整流程
- Java+mysql本地圖片上傳數(shù)據(jù)庫(kù)及下載示例
- java實(shí)現(xiàn)多圖片上傳功能
相關(guān)文章
Java開(kāi)發(fā)之內(nèi)部類(lèi)對(duì)象的創(chuàng)建及hook機(jī)制分析
這篇文章主要介紹了Java開(kāi)發(fā)之內(nèi)部類(lèi)對(duì)象的創(chuàng)建及hook機(jī)制,結(jié)合實(shí)例形式分析了java基于hook機(jī)制內(nèi)部類(lèi)對(duì)象的創(chuàng)建與使用,需要的朋友可以參考下2018-01-01
java實(shí)現(xiàn)事件委托模式的實(shí)例詳解
這篇文章主要介紹了java實(shí)現(xiàn)事件委托模式的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例來(lái)說(shuō)明如何實(shí)現(xiàn)改功能,希望能幫助到大家理解這樣的模式,需要的朋友可以參考下2017-08-08
mybatis教程之增刪改查_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了mybatis教程之增刪改查,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
如何在 Linux 上搭建 java 部署環(huán)境(安裝jdk/tomcat/mys
這篇文章主要介紹了如何在 Linux 上搭建 java 部署環(huán)境(安裝jdk/tomcat/mysql) + 將程序部署到云服務(wù)器上的操作),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
SpringMVC實(shí)現(xiàn)文件上傳下載功能
這篇文章主要為大家詳細(xì)介紹了springMVC實(shí)現(xiàn)文件上傳和下載的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
通過(guò)Java實(shí)現(xiàn)RSA加密與驗(yàn)證的方法詳解
RSA是一種非對(duì)稱(chēng)加密算法,是目前廣泛應(yīng)用于加密和數(shù)字簽名領(lǐng)域的一種加密算法,本文主要講述如何通過(guò)Java實(shí)現(xiàn)RSA加密與驗(yàn)證,應(yīng)用場(chǎng)景為與其他平臺(tái)對(duì)接接口時(shí),通過(guò)RSA加密和解密驗(yàn)證請(qǐng)求的有效性,在對(duì)接時(shí)雙方互換公鑰,需要的朋友可以參考下2023-12-12

