1.表单file地址
var url=$("#fj").val();
url=url.split("\\");//这里要将 \ 转义一下
var filePath=url[url.length-1];
2.获取项目部署路径
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
if (classLoader == null) {
classLoader = ClassLoader.getSystemClassLoader();
}
java.net.URL url = classLoader.getResource("");
String ROOT_CLASS_PATH = url.getPath() + "/";
File rootFile = new File(ROOT_CLASS_PATH);
String WEB_INFO_DIRECTORY_PATH = rootFile.getParent() + "/";
File webInfoDir = new File(WEB_INFO_DIRECTORY_PATH);
String SERVLET_CONTEXT_PATH = webInfoDir.getParent() + "/";
3.拆分字符串split
System.out.println(":ab:cd:ef::".split(":").length);//末尾分隔符全部忽略
System.out.println(":ab:cd:ef::".split(":",-1).length);//不忽略任何一个分隔符
System.out.println(StringUtils.split(":ab:cd:ef::",":").length);//最前面的和末尾的分隔符全部都忽略,apache commons
System.out.println(StringUtils.splitPreserveAllTokens(":ab:cd:ef::",":").length);//不忽略任何一个分隔符 apache commons
输出:
4
6
3
6
4.下载文件
public void loadfj(HttpServletRequest request,HttpServletResponse response) throws Exception{
Map map=new HashMap<String, Object>();
map.put("FJBLYBH", request.getParameter("FJBLYBH"));
List outlist=tsglservice.getload(map);
if(outlist.size()==1){
Map outmap=(Map) outlist.get(0);
String ctxPath = request.getSession().getServletContext().getRealPath("//") + "//temp//";
String base64Code=(String) outmap.get("FJBFJ");
String url=ctxPath+outmap.get("FJBFJM");
Base64File.decoderBase64File(base64Code, ctxPath+outmap.get("FJBFJM"));
File dirPath = new File(ctxPath);
if (!dirPath.exists()) {
dirPath.mkdir();
}
FileInputStream in = new FileInputStream(ctxPath+outmap.get("FJBFJM"));
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename="+outmap.get("FJBFJM")); //设置名称
OutputStream out = response.getOutputStream();
File f = new File(ctxPath + outmap.get("FJBFJM"));
f.delete();
byte buffer[] = new byte[1024];
int len = 0;
while((len=in.read(buffer))>0){
//输出缓冲区的内容到浏览器,实现文件下载
out.write(buffer, 0, len);
}
//关闭文件输入流
in.close();
//关闭输出流
out.close();
}
}