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";
        }
    
    }
  • 相关阅读:
    .net core获取数据库连接 抛出The type initializer to throw an exception
    解决本地Bootstrap字体图标不可见的问题
    Bootstrap 遮罩插件jquery.mloading
    oracle 数据库触发器,插入更新时间戳
    入门wpf—— 3、样式
    VisualStudio 连接 MySql 实现增删查改
    Bootstrap-table 使用总结,和其参数说明
    oracle数据库 TIMESTAMP(6)时间戳类型
    3.xadmin配置
    2.Model设计
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4766675.html
Copyright © 2011-2022 走看看