本文实例讲述了Java实现的图片上传工具类。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
package com.gcloud.common;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
/**
* 图片上传工具类
* 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 "您上传的文件类型不对!" ;
}
}
BufferedImage bi = ImageIO.read(upload);
int w = bi.getWidth();
int h = bi.getHeight();
if (w > width || h > height) {
return "上传照片宽度和高度不符合要求" ;
}
if (upload.length() > maxSize) {
return "上传照片过大" ;
}
} 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程序设计有所帮助。
原文链接:http://blog.csdn.net/lovoo/article/details/77925644