zoukankan      html  css  js  c++  java
  • Java-UploadHelper工具类

    /**
     * 上传文件类
     */
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.FilenameFilter;
    import java.io.PrintWriter;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    
    public class UploadHelper {
    
        public final static String separator = "/";
        public final static String split = "_";
    
        protected final Log log = LogFactory.getLog(getClass());
    
        class FilenameFilterImpl implements FilenameFilter 
        {
            private String filter = ".";
    
            public FilenameFilterImpl(String aFilter)
            {
                filter = aFilter;
            }
    
            public boolean accept(File dir, String name) 
            {
                return name.startsWith(filter);
            }
        };
        /**
         * 获得当前的文件路径(通过当前日期生成)
         * @param basePath
         * @return
         */
        public static String getNowFilePath(String basePath){
            SimpleDateFormat formater =new SimpleDateFormat("yyyy-MM-dd");
            String pathName = formater.format(new Date());
            File dir = new File(basePath + separator + pathName);
            if(!dir.exists())
                dir.mkdir();
            return pathName;
        }
    
        public static String getNewFileName(String oldFileName){
            oldFileName = oldFileName.replaceAll("'", "").replaceAll(""", "");
            Calendar date = Calendar.getInstance();
            int hour = date.get(Calendar.HOUR_OF_DAY);
            int minute = date.get(Calendar.MINUTE);
            int second = date.get(Calendar.SECOND);
            if(oldFileName.length()>30)
                oldFileName = oldFileName.substring(oldFileName.length()-30);
            return (new Integer(hour*3600 + minute*60 + second).toString()) 
                        + split + oldFileName;
        }
    
        public static String getThumbFileName(String fileName){
            int pos = fileName.lastIndexOf(".");
            if(pos>=0)
                return fileName.substring(0, pos) + "s" + fileName.substring(pos);
            else
                return  fileName + "s";
        }
    
        /**
         * This method checks if the given file exists on disk. If it does it's ignored because
         * that means that the file is allready cached on the server. If not we dump
         * the text on it.
         */
        public void dumpAttributeToFile(String attributeValue, String fileName, String filePath) throws Exception
        {
            File outputFile = new File(filePath + separator + fileName);
            PrintWriter pw = new PrintWriter(new FileWriter(outputFile));
            pw.println(attributeValue);    
            pw.close();
        }
    
        /**
         * 保存文件
         * This method checks if the given file exists on disk. If it does it's ignored because
         * that means that the file is allready cached on the server. If not we take out the stream from the 
         * digitalAsset-object and dumps it.
         */
        public void dumpAsset(File file, String fileName, String filePath) throws Exception
        {
            long timer = System.currentTimeMillis();
    
            File outputFile = new File(filePath + separator + fileName);
            if(outputFile.exists())
            {
                log.info("The file allready exists so we don't need to dump it again..");
                return;
            }
    
            FileOutputStream fis = new FileOutputStream(outputFile);
            BufferedOutputStream bos = new BufferedOutputStream(fis);
    
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
    
            int character;
            while ((character = bis.read()) != -1)
            {
                bos.write(character);
            }
            bos.flush();
    
            bis.close();
            fis.close();
            bos.close();
            log.info("Time for dumping file " + fileName + ":" + (System.currentTimeMillis() - timer));
        }
    
        /**
         * 保存缩略图
         * This method checks if the given file exists on disk. If it does it's ignored because
         * that means that the file is allready cached on the server. If not we take out the stream from the 
         * digitalAsset-object and dumps a thumbnail to it.
         */
    
        public void dumpAssetThumbnail(File file, String fileName, String thumbnailFile, String filePath, int width, int height, int quality) throws Exception
        {
            long timer = System.currentTimeMillis();
            log.info("fileName:" + fileName);
            log.info("thumbnailFile:" + thumbnailFile);
    
            File outputFile = new File(filePath + separator + thumbnailFile);
            if(outputFile.exists())
            {
                log.info("The file allready exists so we don't need to dump it again..");
                return;
            }
    
            ThumbnailGenerator tg = new ThumbnailGenerator();
            tg.transform(filePath + separator + fileName, filePath + separator + thumbnailFile, width, height, quality);
    
            log.info("Time for dumping file " + fileName + ":" + (System.currentTimeMillis() - timer));
        }
    
        /**
         * This method removes all images in the digitalAsset directory which belongs to a certain digital asset.
         */
        public void deleteDigitalAssets(String filePath, String filePrefix) throws Exception
        { 
            try
            {
                File assetDirectory = new File(filePath);
                File[] files = assetDirectory.listFiles(new FilenameFilterImpl(filePrefix));    
                for(int i=0; i<files.length; i++)
                {
                    File file = files[i];
                    log.info("Deleting file " + file.getPath());
                    file.delete();
                }
            }
            catch(Exception e)
            {
                log.error("Could not delete the assets for the digitalAsset " + filePrefix + ":" + e.getMessage(), e);
            }
        }
    
    }
    
  • 相关阅读:
    Large-Scale Oil Palm Tree Detection from High-Resolution Satellite Images Using Two-Stage Convolutional Neural Networks(worldview油棕树检测)
    Visual Detail Augmented Mapping for Small Aerial Target Detection(航片动态小目标检测)
    Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network(GCN全局卷积网络)
    Learning a Discriminative Feature Network for Semantic Segmentation(语义分割DFN,区别特征网络)
    Semantic Segmentation on Remotely Sensed Images Using an Enhanced Global Convolutional Network with Channel Attention and Domain Specific Transfer Learning
    Super-Resolution Restoration of MISR Images Using the UCL MAGiGAN System 超分辨率恢复
    python 中内存释放与函数传递numpy数组问题
    hdfs的shell命令
    副本策略
    数据分割
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10210967.html
Copyright © 2011-2022 走看看