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中let和Var的区别
    Oracle拼接字符串
    C#System.Data.StrongTypingException:“无法将类型为System.DBNull的对象强制转换为类型System.String”
    C#System.ArgumentException:“该行已经属于另一个表“
    XML Scema出现提示无法找到对象“Settings”的链接“ConnectionStrings(Settings)1”,原因为:在应用程序。。。的解决方法
    Dev Express中GridControl控件显示多列checkBox
    Dev Express中GridControl控件时间显示精确到时分秒
    ORA-01745: 无效的主机/绑定变量名(补充说明其他的一些错误并附上保留字字典)
    vm虚拟机系类问题
    学手工分区- fdisk
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4766675.html
Copyright © 2011-2022 走看看