亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java實現文件上傳下載和圖片壓縮代碼示例

2019-11-26 15:16:13
字體:
來源:轉載
供稿:網友

分享一個在項目中用的到文件上傳下載和對圖片的壓縮,直接從項目中扒出來的:)

復制代碼 代碼如下:

package com.eabax.plugin.yundada.utils;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import 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;
public class FileUploadDownloadUtil {
    private static final Logger log = LoggerFactory.getLogger(FileUploadDownloadUtil.class);
    /**
     * 上傳文件到服務器
     * @param request
     * @param type
     * @return
     * @throws Exception
     */
    public static String upload(HttpServletRequest request, String type) throws Exception {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        String saveFileName = null;
        if (isMultipart) {
            String savePath = request.getSession().getServletContext()
                    .getRealPath("/")
                    + "/upload/";
            String tempPath = request.getSession().getServletContext()
                    .getRealPath("/")
                    + "/upload/temp/";
            File saveFile = new File(savePath);
            File tempFile = new File(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<FileItem> fileItems = uploader.parseRequest(request);
            for (FileItem item : fileItems) {
                if (item.isFormField()) {
                    // funName=item.getString();
                } else {
                    // String fileName=item.getName();
                    // String
                    // fix=fileName.substring(fileName.lastIndexOf(".")+1);
                    String fix = type;
                    Date nowDate = new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat(
                            "yyyyMMddhhmmss");
                    String fileName = sdf.format(nowDate);
                    fileName += System.currentTimeMillis();
                    fileName += "." + fix;
                    saveFileName = "/upload/" + fileName;
                    File file = new File(savePath + fileName);
                    item.write(file);
                }
            }
        }
        return saveFileName;
    }
    /**
     * 上傳頭像
     * @param request
     * @param type
     * @return
     * @throws Exception
     */
    public static String uploadHeadShow(HttpServletRequest request,GaContext context, String type) throws Exception {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        String saveFileName = null;
        String imagePath = "/upload/headshow/";
        String x = request.getParameter("length");
        String y = request.getParameter("wide");
        if (isMultipart) {
            String headShowServicePath = request.getSession().getServletContext()
                    .getRealPath("/")
                    + imagePath;
            Date nowDate = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat(
                    "yyyyMMddhhmmss");
            String fileName = context.getUsername()+sdf.format(nowDate);
            File headShowFile = new File(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<FileItem> fileItems = uploader.parseRequest(request);
            for (FileItem item : fileItems) {
                if (item.isFormField()) {
                    // funName=item.getString();
                } else {
                    String fix = type;
                    fileName += "." + fix;
                    saveFileName = imagePath + fileName;
                    File file = new File(headShowServicePath + fileName);
                    item.write(file);
                }
            }
            //壓縮圖片
            if(x!=null&&!"".equals(x) && y!=null&&!"".equals(y)) {
                saveFileName = thumbnailatorImage(imagePath, fileName, type, Integer.parseInt(x), Integer.parseInt(y));
            }
        }
        return saveFileName;
    }
    /**
     * 上傳分享圖片
     * @param request
     * @param type
     * @return
     * @throws Exception
     */
    public static JSONObject uploadArticleImage(HttpServletRequest request,GaContext context, String type) throws Exception {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        JSONObject saveFileName = new JSONObject();
        String imagePath = "";
        String x = request.getParameter("length");
        String y = request.getParameter("wide");
        if("4".equals(type)) {
            //分享上傳圖片路徑
            imagePath = "/upload/articleimage/";
        }else if("5".equals(type)) {
            //鏈接上傳圖片路徑
            imagePath = "/upload/linkimage/";
        } else {
            //頭像上傳圖片路徑
            imagePath = "/upload/headshow/";
        }
        if (isMultipart) {
            String headShowServicePath = request.getSession().getServletContext()
                    .getRealPath("/")
                    + imagePath;
            File headShowFile = new File(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<FileItem> fileItems = uploader.parseRequest(request);
            for (FileItem item : fileItems) {
                UUID uuid = UUID.randomUUID();
                String fileName = uuid.toString();
                if (item.isFormField()) {
                    // funName=item.getString();
                } else {
                    String fix = type;
                    fileName += "." + fix;
                    saveFileName.put( uuid.toString(),imagePath + fileName);
                    File file = new File(headShowServicePath + fileName);
                    item.write(file);
                }
                //壓縮圖片
                if(x!=null&&!"".equals(x) && y!=null&&!"".equals(y)) {
                    String thumbnailatorName = thumbnailatorImage(imagePath, fileName, type, Integer.parseInt(x), Integer.parseInt(y));
                    saveFileName.put("thumbnailatorImage", thumbnailatorName);
                }
            }
        }
        return saveFileName;
    }
    /**
     * 上傳壓縮壓縮并保存圖片
     * @param oldSavePath 原文件路徑
     * @param oldFileName 原文件名稱
     * @param fix 文件類型
     * @param x 需要壓縮的寬度
     * @param y 需要壓縮的長度
     * @return
     * @throws IOException
     */
    public static String thumbnailatorImage(String oldSavePath,String oldFileName,String fix,int x,int y) throws IOException {
         //Thumbnail讀取并壓縮圖片
        BufferedImage waterMarkBufferedImage = Thumbnails.of(oldSavePath+oldFileName) 
                //Thumbnail的方法,壓縮圖片
                .size(x, y)
                //讀取成BufferedImage對象 
                .asBufferedImage(); 
        //把內存中的圖片寫入到指定的文件中 
        String savePath = oldSavePath+x+"-"+y+"/";
        File 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 += "." + fix;
        String saveFileName = savePath+fileName;
        File fileOutPut = new File(saveFileName); 
        ImageIO.write(waterMarkBufferedImage, fix, fileOutPut);
        return saveFileName;
    }
    /**
     * 下載壓縮壓縮并保存圖片
     * @param oldSavePath 原文件路徑
     * @param oldFileName 原文件名稱
     * @param fix 文件類型
     * @param x 需要壓縮的寬度
     * @param y 需要壓縮的長度
     * @return
     * @throws IOException
     */
    public static String downloadThumbnailatorImage(String servicePath,String uri,int x,int y) throws 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+fileName;
        File downFilePath = new File(getThumbnailatorPath);//壓縮以后的文件夾
        File downFile = new File(saveFileName);//壓縮以后的文件
        if (downFilePath.isDirectory()&&downFile.exists()) {
            return saveFileName;
        } else {
         //Thumbnail讀取并壓縮圖片
            log.error(servicePath+uri);
            BufferedImage waterMarkBufferedImage = Thumbnails.of(servicePath+uri) 
                    //Thumbnail的方法,壓縮圖片
                    .size(x, y)
                    //讀取成BufferedImage對象 
                    .asBufferedImage();
            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;
    }
}

以上就是本文分享的所有內容了,希望對大家能有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久777国产线看观看精品| 欧美一区深夜视频| 91色中文字幕| 久热爱精品视频线路一| 92看片淫黄大片看国产片| 亚洲www在线| 日本午夜精品理论片a级appf发布| 欧美日本啪啪无遮挡网站| 日韩女在线观看| 亚洲天堂精品在线| 久久免费视频网| 国产精品一区二区三区久久久| 国产成人在线一区| 日韩在线视频二区| 91在线中文字幕| 国产精品丝袜久久久久久不卡| 日韩视频免费观看| 日韩av在线一区二区| 亚洲一区二区在线播放| 久久久久久国产三级电影| 日本老师69xxx| 91国产在线精品| 国a精品视频大全| 精品人伦一区二区三区蜜桃免费| 中文字幕欧美日韩| 亚洲欧美一区二区三区久久| 欧美福利小视频| 亚洲精品福利在线观看| 91社区国产高清| 91丝袜美腿美女视频网站| 丝袜一区二区三区| 亚洲视频一区二区三区| 欧美日韩亚洲一区二区三区| 欧美日韩免费网站| 亚洲网站在线播放| 国产91精品久| 亚洲国产欧美一区二区三区同亚洲| 国产成人精品一区二区在线| 成人一区二区电影| 亲爱的老师9免费观看全集电视剧| 国产视频久久久| 成人乱人伦精品视频在线观看| 日日噜噜噜夜夜爽亚洲精品| www.亚洲一二| 亚洲欧美日韩精品久久亚洲区| 国产精品一区久久久| 久久久黄色av| 精品国产自在精品国产浪潮| 亚洲欧美另类在线观看| 亚洲电影在线看| 俺去亚洲欧洲欧美日韩| 成人福利免费观看| 国产成人精品久久二区二区| 日韩在线视频中文字幕| 国产亚洲日本欧美韩国| 日韩精品免费综合视频在线播放| 亚洲美女av黄| 国产一区二区色| 亚洲一区二区久久久久久久| 96pao国产成视频永久免费| 欧美麻豆久久久久久中文| 成人精品久久av网站| xx视频.9999.com| 日韩av电影免费观看高清| 日韩精品中文字幕在线| 国产精品pans私拍| 亚洲精品av在线播放| 2018中文字幕一区二区三区| 亚洲精品v欧美精品v日韩精品| 国产精品影片在线观看| 视频在线观看一区二区| 欧美成人剧情片在线观看| 国产精品久久久久久久久久99| 国产精品亚洲视频在线观看| 欧美在线激情网| 久久精品电影网站| 日韩高清电影好看的电视剧电影| 日韩成人在线免费观看| 日本精品久久中文字幕佐佐木| 久久久久久伊人| 亚洲午夜国产成人av电影男同| 97在线视频免费观看| 亚洲国产日韩欧美在线图片| 北条麻妃在线一区二区| 日韩一区二区福利| 国产精品欧美激情| 精品久久香蕉国产线看观看gif| 久久综合久久美利坚合众国| 黄色91在线观看| 午夜精品一区二区三区在线| 国产精品一区二区久久国产| 亚洲欧美福利视频| 5252色成人免费视频| 91精品国产91久久久久久最新| 国语自产精品视频在免费| 亚洲精选在线观看| 欧美成人国产va精品日本一级| 日本乱人伦a精品| 久久九九有精品国产23| 亚洲国产精品字幕| 久久精品99无色码中文字幕| 久久久久久久97| 欧美亚洲在线播放| 精品成人久久av| 中日韩美女免费视频网址在线观看| 欧美视频中文字幕在线| 日韩欧美国产一区二区| 精品久久久999| 亚洲精品免费在线视频| 久久免费成人精品视频| 亚洲综合在线小说| 一区二区三区四区视频| 亚洲美女av在线播放| 91精品国产高清久久久久久久久| 国产精品高潮呻吟久久av黑人| 精品日本美女福利在线观看| 欧美高清第一页| 国产丝袜视频一区| 欧美精品免费播放| 一区二区三区国产在线观看| 美女国内精品自产拍在线播放| 国产精品久久久久av| 国产日韩在线亚洲字幕中文| 欧美性xxxxxxx| 日韩av免费一区| 亚洲福利视频久久| 青草青草久热精品视频在线观看| 国内自拍欧美激情| 日韩在线视频观看正片免费网站| 亚洲国产另类久久精品| 日韩精品在线观看一区二区| 久久琪琪电影院| 国产精品亚洲激情| 欧美精品手机在线| 日韩精品久久久久久福利| 欧美午夜激情在线| 国产日韩欧美视频在线| 欧美丰满老妇厨房牲生活| 夜夜嗨av色综合久久久综合网| 国产精品99免视看9| 国产成人97精品免费看片| 欧美午夜精品伦理| 国产精品69精品一区二区三区| 亚洲第一黄色网| 国产一区二区三区直播精品电影| 欧美视频在线免费| 日韩亚洲一区二区| 国产一区二区丝袜| 国产日韩欧美夫妻视频在线观看| 538国产精品一区二区在线| 2019国产精品自在线拍国产不卡| 亚洲第一精品福利| 欧美激情在线一区| 富二代精品短视频| 色婷婷综合久久久久中文字幕1| 国产精品第10页| 欧美大片在线免费观看| 午夜精品蜜臀一区二区三区免费| 中文字幕日韩欧美精品在线观看| 色哟哟网站入口亚洲精品| 91亚洲va在线va天堂va国| 精品视频偷偷看在线观看| 午夜精品一区二区三区视频免费看| 欧美在线观看www|