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";
        }
    
    }
  • 相关阅读:
    __str__和__repr__
    面向对象进阶实战之选课系统
    面向对象总结
    反射(hasattr和getattr和setattr和delattr)
    类和对象的绑定方法及非绑定方法
    -bash: mysql: command not found 解决办法 (转)
    C++类的const成员函数、默认的构造函数、复制形参调用函数(转)
    Zend Framework学习日记(2)--HelloWorld篇(转)
    Zend Framework学习日记(1)--环境搭建篇(转)
    用C/C++扩展你的PHP(转)
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4766675.html
Copyright © 2011-2022 走看看