org.apache.maven.plugins
maven-compiler-plugin
2.2
${java.home}/lib/rt.jar;${java.home}/lib/jce.jar
var files = $('#userImageUpload')[0].files;
files[0]
* Upload from request stream
*
*/
public static List uploadS3File(Request req) throws Exception {
List fileUrls = new ArrayList();
setFileStoreAttr(req);
try {
Collection parts = getValidParts(req);
if (parts.size() > 0) {
for (Part part : parts) {
String path = storeFolderName + '/' + UUID.randomUUID();
ObjectMetadata meta = new ObjectMetadata();
meta.setContentType(part.getContentType());
InputStream in = part.getInputStream();
PutObjectRequest request;
if (part.getContentType().contentEquals("image")) {
request = new PutObjectRequest(s3BucketName,
path,
in,
meta);
} else {
request = new PutObjectRequest(s3BucketName,
path,
compressImageByWeithAndHeight(in, 0.5f,200,200),
meta);
}
request.withCannedAcl(CannedAccessControlList.PublicRead);
s3.putObject(request);
fileUrls.add(Helper.getS3FilePath(path));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return fileUrls;
}
/**
* helper for file/image upload
*
*/
private static Collection getValidParts(Request req) {
Collection parts = new ArrayList();
try {
for (Part part : req.raw().getParts()) {
ApplicationPart appPart = (ApplicationPart) part;
String fileName = appPart.getSubmittedFileName();
if (fileName != null && !fileName.isEmpty()) {
parts.add(part);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return parts;
}
/**
* compress image by width , height , quantity
*
* @param input
* @param quantity
* @param width
* @param height
* @return
*/
private static InputStream compressImageByWeithAndHeight(InputStream input, float quantity,int width,int height) {
quantity = quantity == 0f ? 0.5f : quantity;
try {
ImageInputStream imageInput = ImageIO.createImageInputStream(input);
Image image = ImageIO.read(imageInput);
/** 宽,高设定 */
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(image, 0, 0, width, height, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);
/** 压缩质量 */
jep.setQuality(quantity, true);
encoder.encode(tag, jep);
ByteArrayInputStream result = new ByteArrayInputStream(out.toByteArray());
out.close();
return result;
} catch (Exception e) {
e.printStackTrace();
}
return input;
}
}
/**
* Get file access url
*
* @param key
* @return
*/
public static String getS3FilePath(String key) {
return s3Domain + '/' + key;
}