Partagez un téléchargement de fichiers et téléchargez et compressez l'image utilisée dans le projet, et directement extrait du projet :)
La copie de code est la suivante:
Package com.eabax.plugin.yundada.utils;
Importer java.awt.image.bufferedImage;
Importer java.io.file;
Importer java.io.ioException;
import java.text.simpledateFormat;
Importer java.util.date;
Importer java.util.list;
import java.util.uuid;
import javax.imageio.imageio;
Importer javax.servlet.http.httpservletRequest;
importer net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.fileupload.fileItem;
import org.apache.commons.fileupload.disk.diskfileItemfactory;
import org.apache.commons.fileupload.servlet.servletFileUpload;
import org.json.jsonObject;
import org.slf4j.logger;
import org.slf4j.loggerfactory;
import com.eabax.plugin.yundada.gacontext;
classe publique FileUploadDownloadUtil {
Logger final statique privé Logger = loggerfactory.getLogger (fileuploaddownloadUtil.class);
/ **
* Télécharger des fichiers sur le serveur
* demande @param
* Type @param
* @retour
* @throws exception
* /
Public Static String upload (HttpServLetRequest Request, String Type) lève l'exception {
booléen isMultupart = servletFileupload.ismulTipartContent (demande);
String SaveFileName = null;
if (ismultupart) {
String SavePath = request.getSession (). GetServletContext ()
.getRealPath ("/")
+ "/ upload /";
String temppath = request.getSession (). GetServletContext ()
.getRealPath ("/")
+ "/ upload / temp /";
Fichier SaveFile = new File (SavePath);
Fichier tempfile = nouveau fichier (temppath);
if (! SaveFile.isDirectory ())
SaveFile.mkDirs ();
if (! tempfile.isdirectory ())
tempfile.mkDirs ();
DiskfileItemfactory factory = new DiskFileItemFactory ();
Factory.SetSizethReshold (1024 * 4);
factory.setRepository (tempfile);
ServletFileUpload Uploader = new ServletFileUpload (Factory);
uploader.SetSizEMax (20 * 1024 * 1024);
List <FichierItem> FileItems = uploader.PaSeRequest (demande);
pour (FileItem Item: FileItems) {
if (item.isformfield ()) {
// funname = item.getString ();
} autre {
// string filename = item.getName ();
// Chaîne
// fixe = filename.substring (filename.LastIndexof (".") + 1);
String fix = type;
Date NowDate = new Date ();
SimpledateFormat sdf = new SimpledateFormat (
"yyyymmddhhmms");
String filename = sdf.format (NowDate);
FileName + = System.CurrentTimeMillis ();
FileName + = "."
SaveFileName = "/ upload /" + filename;
Fichier file = nouveau fichier (SavePath + FileName);
item.write (fichier);
}
}
}
return SaveFileName;
}
/ **
* Télécharger Avatar
* demande @param
* Type @param
* @retour
* @throws exception
* /
public static String uploadheadshow (HttpSservletRequest Request, Gacontext Context, String Type) lève l'exception {
booléen isMultupart = servletFileupload.ismulTipartContent (demande);
String SaveFileName = null;
String imagePath = "/ upload / headshow /";
String x = request.getParameter ("longueur");
String y = request.getParameter ("large");
if (ismultupart) {
String HeadshowServicePath = request.getSession (). GetServletContext ()
.getRealPath ("/")
+ ImagePath;
Date NowDate = new Date ();
SimpledateFormat sdf = new SimpledateFormat (
"yyyymmddhhmms");
String filename = context.getUserName () + sdf.format (nowDate);
Fichier headshowfile = nouveau fichier (HeadshowServicePath);
if (! headshowfile.isdirectory ())
Headshowfile.mkDirs ();
DiskfileItemfactory factory = new DiskFileItemFactory ();
Factory.SetSizethReshold (1024 * 4);
factory.setRepository (headshowfile);
ServletFileUpload Uploader = new ServletFileUpload (Factory);
uploader.SetSizEMax (20 * 1024 * 1024);
List <FichierItem> FileItems = uploader.PaSeRequest (demande);
pour (FileItem Item: FileItems) {
if (item.isformfield ()) {
// funname = item.getString ();
} autre {
String fix = type;
FileName + = "."
SaveFileName = ImagePath + FileName;
Fichier file = nouveau fichier (headshowservicepath + nom de fichier);
item.write (fichier);
}
}
// comprime l'image
if (x! = null &&! "",.
SaveFileName = ThumbnailatorImage (ImagePath, FileName, Type, Integer.ParseInt (X), Integer.ParseInt (Y));
}
}
return SaveFileName;
}
/ **
* Télécharger et partager des photos
* demande @param
* Type @param
* @retour
* @throws exception
* /
public static jsonObject uploadarticleImage (demande httpservletRequest, contexte gacontext, type de chaîne) lève une exception {
booléen isMultupart = servletFileupload.ismulTipartContent (demande);
JSONObject SaveFileName = new JSONObject ();
String imagePath = "";
String x = request.getParameter ("longueur");
String y = request.getParameter ("large");
if ("4" .equals (type)) {
// Partagez le chemin d'image de téléchargement
ImagePath = "/ upload / articleImage /";
} else if ("5" .equals (type)) {
// Lien Téléchargez le chemin d'image
ImagePath = "/ upload / linkImage /";
} autre {
// le chemin pour télécharger l'avatar
ImagePath = "/ upload / headshow /";
}
if (ismultupart) {
String HeadshowServicePath = request.getSession (). GetServletContext ()
.getRealPath ("/")
+ ImagePath;
Fichier headshowfile = nouveau fichier (HeadshowServicePath);
if (! headshowfile.isdirectory ())
Headshowfile.mkDirs ();
DiskfileItemfactory factory = new DiskFileItemFactory ();
Factory.SetSizethReshold (1024 * 4);
factory.setRepository (headshowfile);
ServletFileUpload Uploader = new ServletFileUpload (Factory);
uploader.SetSizEMax (20 * 1024 * 1024);
List <FichierItem> FileItems = uploader.PaSeRequest (demande);
pour (FileItem Item: FileItems) {
UUid uuid = uUid.randomuuid ();
String filename = uuid.toString ();
if (item.isformfield ()) {
// funname = item.getString ();
} autre {
String fix = type;
FileName + = "."
SaveFileName.put (uUID.ToString (), ImagePath + FileName);
Fichier file = nouveau fichier (headshowservicepath + nom de fichier);
item.write (fichier);
}
// comprime l'image
if (x! = null &&! "",.
String ThumbnailatorName = ThumbnailatorImage (ImagePath, FileName, Type, Integer.ParseInt (X), Integer.ParseInt (Y));
SaveFileName.put ("ThumbnailatorImage", Thumbnailatorname);
}
}
}
return SaveFileName;
}
/ **
* Télécharger la compression et enregistrer des images
* @param oldsavepath cheminée de fichier d'origine
* @Param OldFileName Nom du fichier d'origine
* Type de fichier de correction @param
* @param x largeur requis pour la compression
* @param y La longueur requise pour la compression
* @retour
* @throws ioexception
* /
Public Static String ThumbnailatorImage (String OldsAvePath, String OldFileName, String Fix, int x, int y) lève ioException {
// Ligne de lecture et comprime les images
BufferedImage WaterMarkBlufferedImage = Thumbnails.of (OldsavePath + OldFilename)
// Méthode miniature, images de compression
.Size (x, y)
// Lire comme un objet BufferedImage
.AsbfferedImage ();
// Écrivez les images en mémoire dans le fichier spécifié
String SavePath = OldsAvePath + X + "-" + y + "/";
Fichier SaveFile = new File (SavePath);
if (! SaveFile.isDirectory ())
SaveFile.mkDirs ();
DiskfileItemfactory factory = new DiskFileItemFactory ();
Factory.SetSizethReshold (1024 * 4);
factory.setRepository (SaveFile);
ServletFileUpload Uploader = new ServletFileUpload (Factory);
uploader.SetSizEMax (20 * 1024 * 1024);
UUid uuid = uUid.randomuuid ();
String filename = uuid.toString ();
FileName + = "."
String SaveFileName = SavePath + FileName;
File fileoutput = new File (SaveFileName);
ImageIo.Write (WaterMarkBufferedImage, Fix, FileOutput);
return SaveFileName;
}
/ **
* Télécharger des photos compressées et enregistrées
* @param oldsavepath cheminée de fichier d'origine
* @Param OldFileName Nom du fichier d'origine
* Type de fichier de correction @param
* @param x largeur requis pour la compression
* @param y La longueur requise pour la compression
* @retour
* @throws ioexception
* /
Public Static String DownloadThumbnAweAtImage (String ServicePath, String Uri, int x, int y) lève ioException {
// Vérifiez si l'image existe
String urisubpath = uri.substring (0, uri.lastIndexof ("/") + 1); // avant le nom du fichier, après le serveur
String FileName = uri.substring (uri.lastindexof ("/") + 1, uri.length ()); // nom de fichier
String gettHumbnailatorPath = ServicePath + UrisubPath + x + "-" + y + "/";
String SaveFileName = GetThumbnailatorPath + FileName;
Fichier downfilepath = nouveau fichier (getThumbnailatorPath); // compresser le dossier une fois qu'il est compressé
Fichier downfile = nouveau fichier (SaveFileName); // compresser le fichier après lui
if (downfilepath.isdirectory () && downfile.exists ()) {
return SaveFileName;
} autre {
// Ligne de lecture et comprime les images
Log.Error (ServicePath + URI);
BufferedImage WaterMarkBufferedImage = Thumbnails.of (ServicePath + URI)
// Méthode miniature, images de compression
.Size (x, y)
// Lire comme un objet BufferedImage
.AsbfferedImage ();
if (! downfilepath.isdirectory ()) {
downfilepath.mkDirs ();
}
DiskfileItemfactory factory = new DiskFileItemFactory ();
Factory.SetSizethReshold (1024 * 4);
factory.setRepository (downfilepath);
ServletFileUpload Uploader = new ServletFileUpload (Factory);
uploader.SetSizEMax (20 * 1024 * 1024);
File fileoutput = new File (SaveFileName);
ImageIo.Write (WaterMarkBufferedImage, "JPG", FileOutput);
}
return SaveFileName;
}
}
Ce qui précède est tout le contenu partagé dans cet article, j'espère que cela sera utile à tout le monde.