FileUtil 多文件上传,文件下载 ,文件删除

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
import org.junit.Test;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;


public class FileUtil
{
    //多文件上传工具类,前台传来的文件流保存在request中
    public static List<String> upLoad(HttpServletRequest request, String path) throws IOException {
        List<String> list = new ArrayList<String>();    //存放结果
        //1、将当前上下文初始化给CommonMutipartResolver
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
        //2、检查Form中encType是否为multipart/form-data
        if(multipartResolver.isMultipart(request))
        {
            //将request转为MultipartHttpServletRequest
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            //获取迭代器遍历multipartRequest里的文件名
            Iterator<String> iter = multipartRequest.getFileNames();
//            System.out.println(iter.equals().);
            while(iter.hasNext())
            {
                //获取文件并向下遍历
                MultipartFile file = multipartRequest.getFile(iter.next().toString());
                if(file != null)
                {
                    //获取文件类型,即后缀名
                    String str = file.getOriginalFilename();
                    String suffix = str.substring(str.lastIndexOf("."));

                    //用 当前日期+UUID作为文件名避免重名
                    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
                    String dateStr = sdf.format(new Date()).replaceAll("-", "");
                    String name = dateStr + UUID.randomUUID().toString().replaceAll("-", "");

                    //拼接文件绝对路径
                    String filePath = path+"\\" + name + suffix;
                    File dir = new File(path);//创建upload文件夹
                    if(!dir.exists()){
                        dir.mkdirs();
                    }
                    //MultipartFile自带的解析方法
                    file.transferTo(new File(filePath));//输出文件
                    filePath = "http://"+OaUrl.ip+":"+request.getLocalPort()+"/upload/"+name + suffix;
                    list.add(filePath);
                }
            }
        }
        return list;
    }

    //文件下载
    public static void download(HttpServletRequest request, HttpServletResponse response,String targetName, String targetPath) throws IOException {
        //将pdf读取提供下载
        request.setCharacterEncoding("UTF-8");
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;

        File file = new File(targetPath);
        //获取文件的长度
        long fileLength = file.length();
        //设置文件输出类型
        response.setContentType("application/octet-stream");
        response.setHeader("Content-disposition", "attachment; filename="
                + new String(targetName.getBytes("utf-8"), "ISO8859-1"));
        //设置输出长度
        response.setHeader("Content-Length", String.valueOf(fileLength));
        //获取输入流
        bis = new BufferedInputStream(new FileInputStream(targetPath));
        //输出流
        bos = new BufferedOutputStream(response.getOutputStream());
        byte[] buff = new byte[2048];
        int bytesRead;
        while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
            bos.write(buff, 0, bytesRead);
        }
        //关闭流
        bis.close();
        bos.close();
    }


        //文件删除工具类
    public static boolean deleteFile(String url) throws Exception {
        String path = System.getProperty("user.dir");//tomcat bin路径
        path = path.substring(0,path.indexOf("bin"))+"webapps\\upload";
        url = url.substring(url.lastIndexOf("/"));
        url = url.replace("/", "\\");
        url = path+url;
        File file = new File(url);

        if (file.isFile()) {
            if (file.exists()) {
                file.delete();
            }
        }else{
            throw new IOException("文件删除失败:("+file+")错误");
        }
        if (file.exists()) {
            return false;
        } else {
            return true;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_32090861/article/details/80948905
今日推荐