普通上传下载(存tomcat里)

import com.tobacco.common.response.pojo.ResultUtils;
import org.apache.http.entity.ContentType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.util.DigestUtils;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

/**
 * 文件工具
 * @Author ChenWenChao
 */
public class FileUtils {
    /**设置文件路径*/
    private static final String URL = "File/";

    /**
     * 文件上传
     * @param filename 文件名
     * @param file
     * @param request
     * @return
     */
    public static Object fileUpload(String filename, MultipartFile file, HttpServletRequest request) {
        try {
            if (file.isEmpty()) {
                return ResultUtils.error("文件为空","");
            }
            // 获取文件名
            String fileName = file.getOriginalFilename();
            // 设置文件存储路径
            String filePath = request.getServletContext().getRealPath(URL);

            String path = filePath + fileName;
            File dest = new File(path);
            // 检测是否存在目录
            if (!dest.getParentFile().exists()) {
                dest.getParentFile().mkdirs();// 新建文件夹
            }
            file.transferTo(dest);// 文件写入
            return ResultUtils.success("上传成功");
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return ResultUtils.error("上传失败","");
    }

    /**
     * 文件下载
     * @param fileName 要下载的文件名(记得加后缀名)
     * @param request
     * @param response
     * @return
     */
    public static String fileDownload(String fileName, HttpServletRequest request, HttpServletResponse response) {
        if (fileName != null) {
            //设置文件路径
            String path = request.getServletContext().getRealPath(URL);
            File file = new File(path, fileName);
            if (file.exists()) {
                response.setContentType("application/force-download");// 设置强制下载不打开
                try {
                    response.setHeader("Content-Disposition",
                            "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                byte[] buffer = new byte[1024];
                FileInputStream fis = null;
                BufferedInputStream bis = null;
                try {
                    fis = new FileInputStream(file);
                    bis = new BufferedInputStream(fis);
                    OutputStream os = response.getOutputStream();
                    int i = bis.read(buffer);
                    while (i != -1) {
                        os.write(buffer, 0, i);
                        i = bis.read(buffer);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (bis != null) {
                        try {
                            bis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (fis != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
        return null;
    }
}

  

posted @ 2020-11-03 19:04  陈文超  阅读(95)  评论(0)    收藏  举报