package com.fht.common.util;
import java.io.*;
import java.net.URL;
import java.util.Map;import io.netty.util.internal.StringUtil;
import org.apache.tomcat.util.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.springframework.util.ResourceUtils;import javax.servlet.http.HttpServletResponse;import static freemarker.template.Configuration.VERSION_2_3_24;public class FileUtil {
public static Logger logger = LoggerFactory.getLogger(FileUtil.class);
/**
* 生成word文件(全局可用)
* @param dataMap word中需要展示的动态数据,用map集合来保存
* @param templateName word模板名称,例如:test.ftl
* @param fileFullPath 要生成的文件全路径
*/
@SuppressWarnings("unchecked")
public static void create(Map dataMap, String templateName, String fileFullPath) {
logger.info("【createWord】:==>方法进入");
logger.info("【fileFullPath】:==>" + fileFullPath);
logger.info("【templateName】:==>" + templateName);
try {
// 创建配置实例
Configuration configuration = new Configuration(VERSION_2_3_24);
logger.info("【创建配置实例】:==>"); // 设置编码
configuration.setDefaultEncoding("UTF-8");
logger.info("【设置编码】:==>"); // 设置处理空值
configuration.setClassicCompatible(true); // 设置错误控制器
configuration.setClassForTemplateLoading(FileUtil.class,"/ftl"); //创建文件
File file = new File(fileFullPath);
// 如果输出目标文件夹不存在,则创建
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
} // 将模板和数据模型合并生成文件
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"));
// 获取模板
Template template = configuration.getTemplate(templateName);
// 生成文件
template.process(dataMap, out); // 清空缓存
out.flush();
// 关闭流
out.close(); } catch (Exception e) {
logger.info("【生成word文件出错】:==>" + e.getMessage());
e.printStackTrace();
}
} /**
* 下载生成的文件(全局可用)
* @param fullPath 全路径
* @param response
*/
public static void downLoadFile(String fullPath, HttpServletResponse response) {
logger.info("【downLoadFile:fullPath】:==>" + fullPath);
InputStream inputStream = null;
OutputStream outputStream = null; try {
//创建文件
File file = new File(fullPath);
String fileName = file.getName(); //读文件流
inputStream = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer); //清空响应
response.reset();
response.setCharacterEncoding("UTF-8");
// response.setContentType("application/octet-stream; charset=utf-8");
// response.setContentType("application/vnd.ms-excel");
// response.setContentType("application/msword");
response.setHeader("Content-Disposition","attachment; filename=" + new String(fileName.getBytes(), "ISO8859-1"));
response.setHeader("Content-Length", "" + file.length()); //写文件流
outputStream = new BufferedOutputStream(response.getOutputStream());
outputStream.write(buffer);
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (outputStream != null) {
outputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (inputStream != null) {
inputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
} }
}
/**
* 下载生成的文件(全局可用)
* @param response
*/
public static void downLoadFile(String filename,InputStream inputStream, HttpServletResponse response) {
OutputStream outputStream = null;
try {
//读文件流
int filesize = inputStream.available();
byte[] buffer = new byte[filesize];
inputStream = new BufferedInputStream(inputStream);
inputStream.read(buffer); //清空响应
response.reset();
response.setCharacterEncoding("UTF-8");
// response.setContentType("application/octet-stream; charset=utf-8");
// response.setContentType("application/vnd.ms-excel");
// response.setContentType("application/msword");
response.setHeader("Content-Disposition","attachment; filename=" + new String(filename.getBytes(), "ISO8859-1"));
response.setHeader("Content-Length", "" + String.valueOf(filesize)); //写文件流
outputStream = new BufferedOutputStream(response.getOutputStream());
outputStream.write(buffer);
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (outputStream != null) {
outputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (inputStream != null) {
inputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
} }
}
/**
* 下载网络文件到本地(主要用于下载简历附件)
* @param urlAddress 网络url地址,为空时直接返回
* @param fileFullPath 文件全路径
*/
public static void createFromUrl(String urlAddress,String fileFullPath) {
logger.info("【service:开始下载网络文件】:==> 网上文件地址:" + urlAddress + "文件保存路径:" + fileFullPath); if(StringUtil.isNullOrEmpty(urlAddress)) {
return ;
} DataInputStream dataInputStream = null;
FileOutputStream fileOutputStream =null;
try { URL url = new URL(urlAddress);
dataInputStream = new DataInputStream(url.openStream());//打开网络输入流
//创建文件
File file = new File(fileFullPath);
// 如果输出目标文件夹不存在,则创建
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
fileOutputStream = new FileOutputStream(file);//建立一个新的文件
byte[] buffer = new byte[1024];
int length;
while((length = dataInputStream.read(buffer))>0){//开始填充数据
fileOutputStream.write(buffer,0,length);
} fileOutputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(dataInputStream!=null) {
dataInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
} try {
if(fileOutputStream!=null) {
fileOutputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
} /**
* 从网上或本地获得图片的b
没有合适的资源?快使用搜索试试~ 我知道了~
基于HTML+JavaScript+Java+CSS的高校运动会管理系统设计源码
共563个文件
gif:120个
js:107个
png:90个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 142 浏览量
2024-10-02
16:59:34
上传
评论
收藏 13.85MB ZIP 举报
温馨提示
该系统是一款集成HTML、JavaScript、Java和CSS的高校运动会管理系统源码,总计包含564个文件,涵盖120个GIF图片、107个JavaScript脚本、90个PNG图片、58个Java源文件、49个HTML文件、37个CSS样式表、14个LESS和SCSS文件、12个XML文件以及9个JPG图片。系统设计旨在高效管理高校运动会相关事务,提升运动会组织与管理的效率。
资源推荐
资源详情
资源评论
收起资源包目录
基于HTML+JavaScript+Java+CSS的高校运动会管理系统设计源码 (563个子文件)
theme.css 219KB
bootstrap.css 143KB
bootstrap.min.css 118KB
layui.css 71KB
ueditor.css 43KB
font-awesome.css 37KB
ueditor.min.css 34KB
font-awesome.min.css 30KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
video-js.css 21KB
image.css 18KB
wangEditor.css 17KB
wangEditor.min.css 15KB
video.css 15KB
layer.css 14KB
attachment.css 14KB
video-js.min.css 11KB
layui.mobile.css 10KB
laydate.css 7KB
shCoreDefault.css 7KB
scrawl.css 4KB
codemirror.css 3KB
charts.css 3KB
background.css 2KB
main.css 2KB
emotion.css 2KB
dialogbase.css 2KB
music.css 2KB
index.css 1KB
edittable.css 1KB
code.css 1KB
template.css 1KB
webuploader.css 515B
help.css 389B
common.css 360B
iframe.css 41B
fontawesome-webfont.eot 162KB
iconfont.eot 41KB
glyphicons-halflings-regular.eot 20KB
vjs.eot 3KB
UEditorSnapscreen.exe 508KB
competition.ftl 110KB
p.ftl 101KB
score.ftl 5KB
wface.gif 49KB
jxface2.gif 40KB
yface.gif 28KB
bface.gif 27KB
icons.gif 20KB
file-icons.gif 20KB
file-icons.gif 20KB
tface.gif 19KB
fface.gif 18KB
59.gif 10KB
22.gif 10KB
cface.gif 8KB
24.gif 8KB
13.gif 7KB
16.gif 7KB
39.gif 6KB
64.gif 6KB
63.gif 6KB
50.gif 6KB
loading-0.gif 6KB
4.gif 6KB
1.gif 5KB
42.gif 5KB
71.gif 5KB
21.gif 5KB
20.gif 5KB
29.gif 5KB
70.gif 4KB
5.gif 4KB
17.gif 4KB
27.gif 4KB
9.gif 4KB
44.gif 4KB
11.gif 4KB
8.gif 4KB
3.gif 4KB
23.gif 4KB
icons-all.gif 4KB
34.gif 4KB
41.gif 4KB
38.gif 4KB
65.gif 3KB
32.gif 3KB
45.gif 3KB
7.gif 3KB
12.gif 3KB
26.gif 3KB
60.gif 3KB
2.gif 3KB
40.gif 3KB
25.gif 3KB
19.gif 3KB
66.gif 3KB
18.gif 3KB
46.gif 3KB
共 563 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
xyq2024
- 粉丝: 2900
- 资源: 5549
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 单相不间断电源设计与实现-最新开发(含全新源码+设计报告).zip
- 毕设基于多种机器学习算法实现的学生成绩统计分析与预测项目源码.zip
- 第七届泰迪杯数据挖掘挑战赛C题项目成果含源码+项目全部资料.zip
- 第五届浙江省大学生机器人竞赛-寻宝机器人工程+全部参赛资料.zip
- 基于Unity GameFramework 的塔防游戏Demo开发(含源码与说明).zip
- 基于Python和OpenCV深度学习的实时目标检测系统(含项目说明+设计报告).zip
- 基于Python深度学习的电影评论情感分析系统源码+设计资料齐全(可作毕设).zip
- 毕设基于Matlab的水果分级系统源码与实现(含图像采集分析).zip
- 电子教室系统设计与实现源码+论文资料(个人毕业设计项目).zip
- 基于C++的列车时刻查询系统+设计报告及文档说明(课程设计).zip
- 2021年华为云人工智能大赛无人车挑战杯方案源码及全解析资料.zip
- 中国高校计算机大赛移动应用创新赛三等奖项目源码+资料文档.zip
- 基于Python的开源量化交易架构(股票等市场,含源码与说明).zip
- 基于模拟车流的导航系统核心功能实现项目源码+设计文档资料.zip
- 基于YOLOv7的室内场景智能识别系统+设计报告(含源码、说明与教程).zip
- 课程作业基于深度学习的小样本高光谱图像分类方法(含源码与说明).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功