zoukankan      html  css  js  c++  java
  • java 文件保存到本地

    private void savePic(InputStream inputStream, String fileName) {
    
            OutputStream os = null;
            try {
                String path = "D:\testFile\";
                // 2、保存到临时文件
                // 1K的数据缓冲
                byte[] bs = new byte[1024];
                // 读取到的数据长度
                int len;
                // 输出的文件流保存到本地文件
    
                File tempFile = new File(path);
                if (!tempFile.exists()) {
                    tempFile.mkdirs();
                }
                os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);
                // 开始读取
                while ((len = inputStream.read(bs)) != -1) {
                    os.write(bs, 0, len);
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 完毕,关闭所有链接
                try {
                    os.close();
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    文件保存方法.

    附:

    package com.ebways.web.upload.controller;
    
    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    import com.ebways.web.base.BaseController;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import com.ebways.web.upload.url.UploadURL;
    import org.springframework.web.multipart.MultipartFile;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @Controller
    @RequestMapping(value = UploadURL.MODE_NAME)
    public class UploadController extends BaseController {
    
        @RequestMapping(value = UploadURL.IMAGE_UPLOAD)
        @ResponseBody
        public String uploadFile(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IllegalArgumentException, Exception {
            // 参数列表
            Map<String, Object> map = new HashMap<>();
            map.put("file", file);
            savePic(file.getInputStream(), file.getOriginalFilename());
    
            //请求接口
            String apiReturnStr = "";//apiHttpRequest(map, API_HOST_URL + "/image/upload");
    
            return apiReturnStr;
        }
    
        private void savePic(InputStream inputStream, String fileName) {
    
            OutputStream os = null;
            try {
                String path = "D:\testFile\";
                // 2、保存到临时文件
                // 1K的数据缓冲
                byte[] bs = new byte[1024];
                // 读取到的数据长度
                int len;
                // 输出的文件流保存到本地文件
    
                File tempFile = new File(path);
                if (!tempFile.exists()) {
                    tempFile.mkdirs();
                }
                os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);
                // 开始读取
                while ((len = inputStream.read(bs)) != -1) {
                    os.write(bs, 0, len);
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 完毕,关闭所有链接
                try {
                    os.close();
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * <p class="detail">
         * 功能:公共Action
         * </p>
         *
         * @date 2016年9月8日
         * @author wangsheng
         */
        private String allowSuffix = "jpg,png,gif,jpeg";//允许文件格式
        private long allowSize = 2L;//允许文件大小
        private String fileName;
        private String[] fileNames;
    
        public String getAllowSuffix() {
            return allowSuffix;
        }
    
        public void setAllowSuffix(String allowSuffix) {
            this.allowSuffix = allowSuffix;
        }
    
        public long getAllowSize() {
            return allowSize * 1024 * 1024;
        }
    
        public void setAllowSize(long allowSize) {
            this.allowSize = allowSize;
        }
    
        public String getFileName() {
            return fileName;
        }
    
        public void setFileName(String fileName) {
            this.fileName = fileName;
        }
    
        public String[] getFileNames() {
            return fileNames;
        }
    
        public void setFileNames(String[] fileNames) {
            this.fileNames = fileNames;
        }
    
    
        /**
         * <p class="detail">
         * 功能:重新命名文件
         * </p>
         *
         * @return
         * @author wangsheng
         * @date 2016年9月8日
         */
        private String getFileNameNew() {
            SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            return fmt.format(new Date());
        }
    
        /**
         * <p class="detail">
         * 功能:文件上传
         * </p>
         *
         * @param files
         * @param destDir
         * @throws Exception
         * @author wangsheng
         * @date 2014年9月25日
         */
        public void uploads(MultipartFile[] files, String destDir, HttpServletRequest request) throws Exception {
            String path = request.getContextPath();
            String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;
            try {
                fileNames = new String[files.length];
                int index = 0;
                for (MultipartFile file : files) {
                    String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
                    int length = getAllowSuffix().indexOf(suffix);
                    if (length == -1) {
                        throw new Exception("请上传允许格式的文件");
                    }
                    if (file.getSize() > getAllowSize()) {
                        throw new Exception("您上传的文件大小已经超出范围");
                    }
                    String realPath = request.getSession().getServletContext().getRealPath("/");
                    File destFile = new File(realPath + destDir);
                    if (!destFile.exists()) {
                        destFile.mkdirs();
                    }
                    String fileNameNew = getFileNameNew() + "." + suffix;//
                    File f = new File(destFile.getAbsoluteFile() + "\" + fileNameNew);
                    file.transferTo(f);
                    f.createNewFile();
                    fileNames[index++] = basePath + destDir + fileNameNew;
                }
            } catch (Exception e) {
                throw e;
            }
        }
    
        /**
         * <p class="detail">
         * 功能:文件上传
         * </p>
         *
         * @param file
         * @param destDir
         * @throws Exception
         * @author wangsheng
         * @date 2016年9月8日
         */
        public void upload(MultipartFile file, String destDir, HttpServletRequest request) throws Exception {
            String path = request.getContextPath();
            String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;
            try {
                String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
                int length = getAllowSuffix().indexOf(suffix);
                if (length == -1) {
                    throw new Exception("请上传允许格式的文件");
                }
                if (file.getSize() > getAllowSize()) {
                    throw new Exception("您上传的文件大小已经超出范围");
                }
    
                String realPath = request.getSession().getServletContext().getRealPath("/");
                File destFile = new File(realPath + destDir);
                if (!destFile.exists()) {
                    destFile.mkdirs();
                }
                String fileNameNew = getFileNameNew() + "." + suffix;
                File f = new File(destFile.getAbsoluteFile() + "/" + fileNameNew);
                file.transferTo(f);
                f.createNewFile();
                fileName = basePath + destDir + fileNameNew;
            } catch (Exception e) {
                throw e;
            }
        }
    
    }
  • 相关阅读:
    springboot springcloud zuul 过滤器
    springboot springcloud eureka 熔断器
    javaweb servlet filter
    maven nexus 搭建私服(二)
    springboot springcloud zuul 网关入门
    springboot springcloud 配置中心
    springboot springcloud eureka 入门
    java rabbitmq
    java jvm调优
    maven nexus 搭建私服(一)
  • 原文地址:https://www.cnblogs.com/gmq-sh/p/5852096.html
Copyright © 2011-2022 走看看