zoukankan      html  css  js  c++  java
  • 文件上传流式处理commons-fileupload

    1. 从请求中获取MultipartFile 

        @RequestMapping(value="/upload", method=RequestMethod.POST)
        public @ResponseBody String handleFileUpload( 
                @RequestParam("file") MultipartFile file
                ) throws IOException{

    2. 文件流处理

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    
    import org.apache.commons.fileupload.util.Streams;
    import org.apache.commons.io.IOUtils;
    import org.springframework.web.multipart.MultipartFile;
    
    public class UploadFileUtil {
        /**
         * 使用相同的名称
         * @param file
         * @param filePath
         * @return
         */
        public static String handleFileUpload(MultipartFile file,String filePath){
            try {
                if(!file.isEmpty()){
                    String name=file.getOriginalFilename();
                    InputStream inpustream=file.getInputStream();
                    FileOutputStream fos = new FileOutputStream(filePath+File.separator+name);
                    Streams.copy(inpustream, fos, true);    
                }else{
                    return "can not upload this file,because it is empty!";
                }
            } catch (IOException e) {
                return "failed to upload this file,because Stream interrupt unexpectedly";
            }
            return "upload file sucess";
        }
        
        /**
         * 重命名文件,包含后缀
         * @param file
         * @param filePath
         * @param fileName
         * @return
         */
        public static String handleFileUpload(MultipartFile file,String filePath,String fileName){
            try {
                if(!file.isEmpty()){
                    InputStream inpustream=file.getInputStream();
                    FileOutputStream fos = new FileOutputStream(filePath+File.separator+fileName);
                    Streams.copy(inpustream, fos, true);    
                }else{
                    return "can not upload this file,because it is empty!";
                }
            } catch (IOException e) {
                return "failed to upload this file,because Stream interrupt unexpectedly";
            }
            return "upload file sucess";
        }
        
        /**
         *Copy bytes from a large (over 2GB) file with same filename
         * @param file
         * @param filePath
         * @param fileName
         * @return
         */
        
        public static String handleLargeFileUpload(MultipartFile file,String filePath){
            try {
                if(!file.isEmpty()){
                    String name=file.getOriginalFilename();
                    InputStream inpustream=file.getInputStream();
                    FileOutputStream fos = new FileOutputStream(filePath+File.separator+name);
                    IOUtils.copyLarge(inpustream, fos);    
                    if(inpustream!=null){
                        inpustream.close();
                    }
                    if(fos!=null){
                        fos.close();
                    }
                }else{
                    return "can not upload this file,because it is empty!";
                }
            } catch (IOException e) {
                return "failed to upload this file,because Stream interrupt unexpectedly";
            }
            return "upload file sucess";
        }
        
        /**
         *Copy bytes from a large (over 2GB) file with rename file
         * @param file
         * @param filePath
         * @param fileName
         * @return
         */
        
        public static String handleLargeFileUpload(MultipartFile file,String filePath,String fileName){
            try {
                if(!file.isEmpty()){
                    InputStream inpustream=file.getInputStream();
                    FileOutputStream fos = new FileOutputStream(filePath+File.separator+fileName);
                    IOUtils.copyLarge(inpustream, fos);    
                    if(inpustream!=null){
                        inpustream.close();
                    }
                    if(fos!=null){
                        fos.close();
                    }
                }else{
                    return "can not upload this file,because it is empty!";
                }
            } catch (IOException e) {
                return "failed to upload this file,because Stream interrupt unexpectedly";
            }
            return "upload file sucess";
        }
    
    }
  • 相关阅读:
    js正则 转载
    asp.net中打开新窗口的多种方法(转载)
    ajax有两种提交数据的方式,分别为get和post(转)
    DropDownList 绑定(转载)
    CentOS网络配置
    Java内存区域-- 运行时数据区域
    Spring Ioc--Bean装配
    Spring--Spring容器
    java正则表达式 --简单认识
    Leetcode 402:移除K个数字
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4766675.html
Copyright © 2011-2022 走看看