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;
}
}
}
FileUtil 多文件上传,文件下载 ,文件删除
猜你喜欢
转载自blog.csdn.net/qq_32090861/article/details/80948905
今日推荐
周排行