Bagikan unggahan file dan unduh dan kompres gambar yang digunakan dalam proyek, dan langsung diekstraksi dari proyek :)
Salinan kode adalah sebagai berikut:
paket com.eatax.plugin.yundada.utils;
impor java.awt.image.bufferedimage;
impor java.io.file;
impor java.io.ioException;
impor java.text.simpledateFormat;
impor java.util.date;
impor java.util.list;
impor java.util.uuid;
impor javax.imageio.imageio;
impor javax.servlet.http.httpservletRequest;
impor net.coobird.thumbnailator.Thumbnails;
impor org.apache.commons.fileupload.fileItem;
impor org.apache.commons.fileupload.disk.diskfileItemFactory;
impor org.apache.commons.fileupload.servlet.servletfileupload;
impor org.json.jsonobject;
impor org.slf4j.logger;
impor org.slf4j.loggerFactory;
impor com.eatax.plugin.yundada.gacontext;
FileuploadDownLoadutil kelas publik {
Log Logger Terakhir Statis Pribadi = LoggerFactory.GetLogger (FileuploaddownLoadUtil.class);
/**
* Unggah file ke server
* permintaan @param
* Tipe @param
* @kembali
* @Throws Exception
*/
Public Static String Unggah (permintaan httpservletRequest, tipe string) melempar Exception {
boolean ismultipart = servletfileupload.ismultipartcontent (permintaan);
String saveFileName = null;
if (isMultipart) {
String savePath = request.getSession (). GetserVletContext ()
.getrealpath ("/")
+ "/unggah/";
String Temppath = Request.GetSession (). GetServletContext ()
.getrealpath ("/")
+ "/unggah/temp/";
File saveFile = file baru (savePath);
File tempfile = file baru (Temppath);
if (! saveFile.isdirectory ())
saveFile.mkdirs ();
if (! Tempfile.isdirectory ())
tempfile.mkdirs ();
DiskFileItemFactory Factory = DiskFileItemFactory baru ();
factory.setsizethreshold (1024 * 4);
factory.setrepository (tempfile);
Servletfileupload unggah = servletfileupload baru (pabrik);
unggah.setsizeMax (20 * 1024 * 1024);
Daftar <FILEITEM> FileItems = unggah. Parserequest (permintaan);
untuk (item FileItem: FileItems) {
if (item.isformField ()) {
// funname = item.getString ();
} kalau tidak {
// string fileName = item.getName ();
// Rangkaian
// fix = filename.substring (filename.LastIndexOf (".")+1);
String fix = type;
Tanggal nowdate = tanggal baru ();
SimpleDateFormat SDF = new SimpleDateFormat (
"yyyymmddhhmmss");
String filename = sdf.format (nowdate);
nama file += System.currentTimeMillis ();
nama file + = "." + Perbaiki;
saveFileName = "/unggah/" + nama file;
File file = file baru (savePath + fileName);
item.write (file);
}
}
}
return saveFileName;
}
/**
* Unggah avatar
* permintaan @param
* Tipe @param
* @kembali
* @Throws Exception
*/
String statis public unggahheadshow (permintaan httpservletrequest, konteks gacontext, tipe string) melempar pengecualian {
boolean ismultipart = servletfileupload.ismultipartcontent (permintaan);
String saveFileName = null;
String ImagePath = "/unggah/headshow/";
String x = request.getParameter ("panjang");
String y = request.getParameter ("wide");
if (isMultipart) {
String headshowservicePath = request.getSession (). Getservercontext ()
.getrealpath ("/")
+ imagepath;
Tanggal nowdate = tanggal baru ();
SimpleDateFormat SDF = new SimpleDateFormat (
"yyyymmddhhmmss");
String filename = context.getUserName ()+sdf.format (nowdate);
File headshowfile = file baru (headshowservicePath);
if (! headshowfile.isdirectory ())
headshowfile.mkdirs ();
DiskFileItemFactory Factory = DiskFileItemFactory baru ();
factory.setsizethreshold (1024 * 4);
factory.setrepository (headshowfile);
Servletfileupload unggah = servletfileupload baru (pabrik);
unggah.setsizeMax (20 * 1024 * 1024);
Daftar <FILEITEM> FileItems = unggah. Parserequest (permintaan);
untuk (item FileItem: FileItems) {
if (item.isformField ()) {
// funname = item.getString ();
} kalau tidak {
String fix = type;
nama file + = "." + Perbaiki;
saveFileName = imagePath + fileName;
File file = file baru (headshowservicePath + fileName);
item.write (file);
}
}
// Kompres gambar
if (x! = null &&! "",. Equals (x) && y! = null &&! "", Equals (y)) {
saveFileName = thumbnailatorImage (imagepath, nama file, type, integer.parseint (x), integer.parseint (y));
}
}
return saveFileName;
}
/**
* Unggah dan bagikan gambar
* permintaan @param
* Tipe @param
* @kembali
* @Throws Exception
*/
public static jsonObject unggahArticleImage (permintaan httpservletrequest, konteks gacontext, tipe string) melempar pengecualian {
boolean ismultipart = servletfileupload.ismultipartcontent (permintaan);
JsonObject saveFileName = new jsonObject ();
String ImagePath = "";
String x = request.getParameter ("panjang");
String y = request.getParameter ("wide");
if ("4" .Equals (type)) {
// Bagikan jalur gambar unggah
imagePath = "/unggah/artikel/";
} lain jika ("5" .Equals (type)) {
// tautan unggah jalur gambar
imagePath = "/unggah/tautan/";
} kalau tidak {
// Jalur untuk mengunggah avatar
imagePath = "/unggah/headshow/";
}
if (isMultipart) {
String headshowservicePath = request.getSession (). Getservercontext ()
.getrealpath ("/")
+ imagepath;
File headshowfile = file baru (headshowservicePath);
if (! headshowfile.isdirectory ())
headshowfile.mkdirs ();
DiskFileItemFactory Factory = DiskFileItemFactory baru ();
factory.setsizethreshold (1024 * 4);
factory.setrepository (headshowfile);
Servletfileupload unggah = servletfileupload baru (pabrik);
unggah.setsizeMax (20 * 1024 * 1024);
Daftar <FILEITEM> FileItems = unggah. Parserequest (permintaan);
untuk (item FileItem: FileItems) {
Uuid uuid = uuid.randomuuid ();
String filename = uuid.toString ();
if (item.isformField ()) {
// funname = item.getString ();
} kalau tidak {
String fix = type;
nama file + = "." + Perbaiki;
saveFileName.put (uuid.tostring (), imagepath + filename);
File file = file baru (headshowservicePath + fileName);
item.write (file);
}
// Kompres gambar
if (x! = null &&! "",. Equals (x) && y! = null &&! "", Equals (y)) {
String thumbnailatorname = thumbnailatorImage (imagepath, nama file, type, integer.parseint (x), integer.parseint (y));
saveFilename.put ("thumbnailatorimage", thumbnailatorname);
}
}
}
return saveFileName;
}
/**
* Unggah kompresi dan simpan gambar
* @param oldsavepath jalur file asli
* @param oldfilename nama file asli
* @param memperbaiki jenis file
* @param x lebar yang diperlukan untuk kompresi
* @param y panjang yang dibutuhkan untuk kompresi
* @kembali
* @Throws IoException
*/
Public Static String ThumbnailatorImage (String OldSavepath, String OldFileName, String Fix, Int X, Int Y) melempar ioException {
// Thumbnail Membaca dan Mengompres Gambar
BufferedImage watermarkbufferedImage = thumbnails.of (oldsavepath+oldfileName)
// metode thumbnail, kompres gambar
.size (x, y)
// Baca sebagai objek BufferedImage
.asbufferedImage ();
// Tulis gambar dalam memori ke file yang ditentukan
String savePath = oldsavePath+x+"-"+y+"/";
File saveFile = file baru (savePath);
if (! saveFile.isdirectory ())
saveFile.mkdirs ();
DiskFileItemFactory Factory = DiskFileItemFactory baru ();
factory.setsizethreshold (1024 * 4);
factory.setrepository (saveFile);
Servletfileupload unggah = servletfileupload baru (pabrik);
unggah.setsizeMax (20 * 1024 * 1024);
Uuid uuid = uuid.randomuuid ();
String filename = uuid.toString ();
nama file + = "." + Perbaiki;
String saveFileName = savePath+fileName;
File fileoutput = file baru (saveFileName);
ImageIO.Write (WatarkBufferedImage, Fix, FileOutput);
return saveFileName;
}
/**
* Unduh terkompresi dan simpan gambar
* @param oldsavepath jalur file asli
* @param oldfilename nama file asli
* @param memperbaiki jenis file
* @param x lebar yang diperlukan untuk kompresi
* @param y panjang yang dibutuhkan untuk kompresi
* @kembali
* @Throws IoException
*/
public static string downloadthumbnailatorImage (String ServicePath, String URI, int x, int y) melempar ioException {
// Periksa apakah ada gambar
String uRisubPath = uri.substring (0, uri.LastIndexof ("/")+1); // sebelum nama file, setelah server
String filename = uri.substring (uri.LastIndexof ("/")+1, uri.length ()); // Nama file
String getthumbnailatorPath = ServicePath+Urisubpath+x+"-"+y+"/";
String saveFileName = getthumbnailatorPath+fileName;
File downfilePath = file baru (getthumbnailatorpath); // kompres folder setelah dikompresi
File downfile = file baru (saveFileName); // kompres file setelahnya
if (downfilePath.isdirectory () && downfile.exists ()) {
return saveFileName;
} kalau tidak {
// Thumbnail Membaca dan Mengompres Gambar
Log.Error (ServicePath+URI);
BufferedImage watermarkbufferedImage = thumbnails.of (ServicePath+URI)
// metode thumbnail, kompres gambar
.size (x, y)
// Baca sebagai objek BufferedImage
.asbufferedImage ();
if (! downfilePath.isdirectory ()) {
downfilePath.mkdirs ();
}
DiskFileItemFactory Factory = DiskFileItemFactory baru ();
factory.setsizethreshold (1024 * 4);
factory.setrepository (downfilePath);
Servletfileupload unggah = servletfileupload baru (pabrik);
unggah.setsizeMax (20 * 1024 * 1024);
File fileoutput = file baru (saveFileName);
Imageo.write (watermarkBufferedImage, "jpg", fileOutput);
}
return saveFileName;
}
}
Di atas adalah semua konten yang dibagikan dalam artikel ini, saya harap ini akan membantu semua orang.