แชร์ไฟล์อัปโหลดและดาวน์โหลดและบีบอัดภาพที่ใช้ในโครงการและแยกออกจากโครงการโดยตรง :)
การคัดลอกรหัสมีดังนี้:
แพ็คเกจ com.eabax.plugin.yundada.utils;
นำเข้า java.awt.image.bufferedimage;
นำเข้า Java.io.File;
นำเข้า java.io.ioException;
นำเข้า java.text.simpledateFormat;
นำเข้า java.util.date;
นำเข้า java.util.list;
นำเข้า java.util.uuid;
นำเข้า Javax.imageio.imageio;
นำเข้า Javax.servlet.http.httpservletRequest;
นำเข้า net.coobird.thumbnailator.thumbnails;
นำเข้า org.apache.Commons.FileUpload.FileItem;
นำเข้า org.apache.commons.fileupload.disk.diskfileitemfactory;
นำเข้า org.apache.commons.fileupload.servlet.servletFileUpload;
นำเข้า org.json.jsonObject;
นำเข้า org.slf4j.logger;
นำเข้า org.slf4j.loggerfactory;
นำเข้า com.eabax.plugin.yundada.gacontext;
คลาสสาธารณะ FilePloadDownloadUtil {
logger สุดท้ายคงสุดท้าย logger = loggerFactory.getLogger (fileuploaddownloadutil.class);
-
* อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์
* @param Request
* @param ประเภท
* @กลับ
* @throws ยกเว้น
-
การอัปโหลดสตริงสาธารณะแบบคงที่ (คำขอ httpservletrequest, ประเภทสตริง) พ่นข้อยกเว้น {
บูลีน ismultipart = servletfileupload.ismultipartcontent (คำขอ);
สตริง savefiLename = null;
if (isMultipart) {
string savepath = request.getSession (). getServletContext ()
.getRealPath ("/")
+ "/อัปโหลด/";
String temppath = request.getSession (). getServletContext ()
.getRealPath ("/")
+ "/อัปโหลด/อุณหภูมิ/";
ไฟล์ saveFile = ไฟล์ใหม่ (บันทึก);
ไฟล์ tempfile = ไฟล์ใหม่ (temppath);
if (! savefile.isdirectory ())
savefile.mkdirs ();
if (! tempfile.isdirectory ())
tempfile.mkdirs ();
โรงงาน DiskFileItemFactory = ใหม่ diskfileitemfactory ();
Factory.SetSizEthreshold (1024 * 4);
Factory.SetRepository (tempfile);
ServletFileUpload uploader = ใหม่ servletFilePilePload (โรงงาน);
Uploader.SetSizemax (20 * 1024 * 1024);
รายการ <fileItem> fileItems = uploader.parserequest (คำขอ);
สำหรับ (fileitem item: fileitems) {
if (item.isformfield ()) {
// funname = item.getString ();
} อื่น {
// string filename = item.getName ();
// สตริง
// fix = filename.substring (fileName.AlastIndexof (".")+1);
String Fix = type;
วันที่ nowdate = วันที่ใหม่ ();
SimpledateFormat SDF = ใหม่ SimpleDateFormat (
"yyyymmddhhmmss");
string filename = sdf.format (nowdate);
ชื่อไฟล์ += System.currentTimeMillis ();
ชื่อไฟล์ + = "."
savefilename = "/upload/" + ชื่อไฟล์;
ไฟล์ file = ไฟล์ใหม่ (savepath + ชื่อไฟล์);
item.write (ไฟล์);
-
-
-
กลับ savefilename;
-
-
* อัปโหลดอวตาร
* @param Request
* @param ประเภท
* @กลับ
* @throws ยกเว้น
-
String String Public String UploadHeadShow (คำขอ httpservletRequest, บริบท gacontext, ประเภทสตริง) โยนข้อยกเว้น {
บูลีน ismultipart = servletfileupload.ismultipartcontent (คำขอ);
สตริง savefiLename = null;
String imagePath = "/upload/headshow/";
String x = request.getParameter ("ความยาว");
String y = request.getParameter ("กว้าง");
if (isMultipart) {
String HeadshowservicePath = request.getSession (). getServletContext ()
.getRealPath ("/")
+ imagepath;
วันที่ nowdate = วันที่ใหม่ ();
SimpledateFormat SDF = ใหม่ SimpleDateFormat (
"yyyymmddhhmmss");
string filename = context.getUserName ()+sdf.format (nowdate);
ไฟล์ headshowfile = ไฟล์ใหม่ (headshowservicepath);
if (! headshowfile.isdirectory ())
headshowfile.mkdirs ();
โรงงาน DiskFileItemFactory = ใหม่ diskfileitemfactory ();
Factory.SetSizEthreshold (1024 * 4);
Factory.SetRepository (headshowfile);
ServletFileUpload uploader = ใหม่ servletFilePilePload (โรงงาน);
Uploader.SetSizemax (20 * 1024 * 1024);
รายการ <fileItem> fileItems = uploader.parserequest (คำขอ);
สำหรับ (fileitem item: fileitems) {
if (item.isformfield ()) {
// funname = item.getString ();
} อื่น {
String Fix = type;
ชื่อไฟล์ + = "."
saveFileName = imagePath + ชื่อไฟล์;
ไฟล์ไฟล์ = ไฟล์ใหม่ (headshowservicepath + ชื่อไฟล์);
item.write (ไฟล์);
-
-
// บีบอัดรูปภาพ
if (x! = null &&! "", equals (x) && y! = null &&! "", equals (y)) {
savefilename = thumbnailatorItorimage (imagepath, ชื่อไฟล์, ประเภท, integer.parseint (x), integer.parseint (y));
-
-
กลับ savefilename;
-
-
* อัปโหลดและแบ่งปันรูปภาพ
* @param Request
* @param ประเภท
* @กลับ
* @throws ยกเว้น
-
สาธารณะ jsonObject uploadarticleImage สาธารณะ (คำขอ httpservletrequest, บริบท gacontext, ประเภทสตริง) พ่นข้อยกเว้น {
บูลีน ismultipart = servletfileupload.ismultipartcontent (คำขอ);
jsonObject savefilename = new jsonObject ();
String imagePath = "";
String x = request.getParameter ("ความยาว");
String y = request.getParameter ("กว้าง");
if ("4" .Equals (ประเภท)) {
// แบ่งปันเส้นทางอัพโหลดภาพ
imagePath = "/อัพโหลด/articleimage/";
} อื่นถ้า ("5" .Equals (ประเภท)) {
// ลิงค์อัปโหลดเส้นทางภาพ
imagePath = "/upload/linkimage/";
} อื่น {
// เส้นทางที่จะอัปโหลดอวตาร
imagePath = "/อัปโหลด/headshow/";
-
if (isMultipart) {
String HeadshowservicePath = request.getSession (). getServletContext ()
.getRealPath ("/")
+ imagepath;
ไฟล์ headshowfile = ไฟล์ใหม่ (headshowservicepath);
if (! headshowfile.isdirectory ())
headshowfile.mkdirs ();
โรงงาน DiskFileItemFactory = ใหม่ diskfileitemfactory ();
Factory.SetSizEthreshold (1024 * 4);
Factory.SetRepository (headshowfile);
ServletFileUpload uploader = ใหม่ servletFilePilePload (โรงงาน);
Uploader.SetSizemax (20 * 1024 * 1024);
รายการ <fileItem> fileItems = uploader.parserequest (คำขอ);
สำหรับ (fileitem item: fileitems) {
uuid uuid = uuid.randomuuid ();
string filename = uuid.toString ();
if (item.isformfield ()) {
// funname = item.getString ();
} อื่น {
String Fix = type;
ชื่อไฟล์ + = "."
savefilename.put (uuid.toString (), imagePath + ชื่อไฟล์);
ไฟล์ไฟล์ = ไฟล์ใหม่ (headshowservicepath + ชื่อไฟล์);
item.write (ไฟล์);
-
// บีบอัดรูปภาพ
if (x! = null &&! "", equals (x) && y! = null &&! "", equals (y)) {
String ThumbnailatorName = ThumbnailatorInerImage (imagePath, ชื่อไฟล์, ประเภท, integer.parseint (x), integer.parseint (y));
savefilename.put ("ThumbnailatorInic", Thumbnailatorname);
-
-
-
กลับ savefilename;
-
-
* อัปโหลดการบีบอัดและบันทึกรูปภาพ
* @Param OldSavePath เส้นทางไฟล์ต้นฉบับ
* @param ชื่อไฟล์ต้นฉบับ
* @param fix ประเภทไฟล์
* @param x ความกว้างที่จำเป็นสำหรับการบีบอัด
* @param y ความยาวที่จำเป็นสำหรับการบีบอัด
* @กลับ
* @throws ioexception
-
String String Public String thumbnailatorItoriMage (String oldsavepath, String oldfilename, การแก้ไขสตริง, int x, int y) พ่น ioexception {
// รูปขนาดย่ออ่านและบีบอัดรูปภาพ
BufferedImage WatermarkBufferedImage = Thumbnails.of (OldSavePath+OldFilename)
// วิธีภาพย่อการบีบอัดรูปภาพ
.Size (x, y)
// อ่านเป็นวัตถุ bufferedImage
. asbufferedimage ();
// เขียนรูปภาพในหน่วยความจำไปยังไฟล์ที่ระบุ
String savepath = oldsavepath+x+"-"+y+"/";
ไฟล์ saveFile = ไฟล์ใหม่ (บันทึก);
if (! savefile.isdirectory ())
savefile.mkdirs ();
โรงงาน DiskFileItemFactory = ใหม่ diskfileitemfactory ();
Factory.SetSizEthreshold (1024 * 4);
Factory.SetRepository (SaveFile);
ServletFileUpload uploader = ใหม่ servletFilePilePload (โรงงาน);
Uploader.SetSizemax (20 * 1024 * 1024);
uuid uuid = uuid.randomuuid ();
string filename = uuid.toString ();
ชื่อไฟล์ + = "."
String saveFilename = savepath+ชื่อไฟล์;
ไฟล์ fileOutput = ไฟล์ใหม่ (saveFileName);
imageio.write (watermarkbufferedimage, fix, fileoutput);
กลับ savefilename;
-
-
* ดาวน์โหลดบีบอัดและบันทึกรูปภาพ
* @Param OldSavePath เส้นทางไฟล์ต้นฉบับ
* @param ชื่อไฟล์ต้นฉบับ
* @param fix ประเภทไฟล์
* @param x ความกว้างที่จำเป็นสำหรับการบีบอัด
* @param y ความยาวที่จำเป็นสำหรับการบีบอัด
* @กลับ
* @throws ioexception
-
Public Static String DownloadthumbnailatorImage (String ServicePath, String uri, int x, int y) พ่น IoException {
// ตรวจสอบว่ามีภาพอยู่หรือไม่
string urisubpath = uri.substring (0, uri.lastindexof ("/")+1); // ก่อนชื่อไฟล์หลังจากเซิร์ฟเวอร์
string filename = uri.substring (uri.lastindexof ("/")+1, uri.length ()); // ชื่อไฟล์
String getThumbNailatorPath = servicePath+urisubpath+x+"-"+y+"/";
String saveFiLEname = getthumbNailatorPath+ชื่อไฟล์;
ไฟล์ downfilePath = ไฟล์ใหม่ (GetThumbNailatorPath); // บีบอัดโฟลเดอร์หลังจากบีบอัด
ไฟล์ downfile = ไฟล์ใหม่ (saveFileName); // บีบอัดไฟล์หลังจากนั้น
if (downfilepath.isdirectory () && downfile.exists ()) {
กลับ savefilename;
} อื่น {
// รูปขนาดย่ออ่านและบีบอัดรูปภาพ
log.error (servicepath+uri);
BufferedImage WatermarkBufferedImage = Thumbnails.of (ServicePath+URI)
// วิธีภาพย่อการบีบอัดรูปภาพ
.Size (x, y)
// อ่านเป็นวัตถุ bufferedImage
. asbufferedimage ();
if (! downfilepath.isdirectory ()) {
downfilepath.mkdirs ();
-
โรงงาน DiskFileItemFactory = ใหม่ diskfileitemfactory ();
Factory.SetSizEthreshold (1024 * 4);
Factory.SetRepository (downfilepath);
ServletFileUpload uploader = ใหม่ servletFilePilePload (โรงงาน);
Uploader.SetSizemax (20 * 1024 * 1024);
ไฟล์ fileOutput = ไฟล์ใหม่ (saveFileName);
Imageio.write (watermarkbufferedimage, "jpg", fileoutput);
-
กลับ savefilename;
-
-
ข้างต้นคือเนื้อหาทั้งหมดที่แบ่งปันในบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน