需求:对服务器中指定文件夹中的pdf进行提取、压缩、下载
压缩和下载的工具类
import com.good.service.utils.DateUtils;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/***
* 将服务器中文件内容压缩响应到浏览器并下载
*/
public class DownloadUtils {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private static final int BUFFER_SIZE = 2 * 1024;
// 字符编码格式
private static String charsetCode = "utf-8";
/**
* 下载接口
* @param filePath 需要下载的文件的路径
* @param partPath 拼凑路径
* @param tList 下载的文件的名称
* @param response
* @param request
* @return
* @throws IOException
*/
public static String downLoad(String filePath, String partPath, List<String> tList, HttpServletResponse response, HttpServletRequest request) throws IOException {
List<File> fileList = new ArrayList<>();
for (String list : tList) {
fileList.add(new File(filePath + partPath + "/" + list + ".pdf"));
}
String srcFile = filePath + "/download" + DateUtils.getDate("yyyyMMddHHmmss") + ".zip";