当前位置: 首页 > news >正文

静安做网站的公司软文标题和内容

静安做网站的公司,软文标题和内容,流量卡套餐,特色企业网站在web中下载的方式大多基于servlet&#xff0c;在web.xml中配置下载路径&#xff0c;这里再介绍json(转成base64字符串)和blob的使用方式 servlet WEB-INF/web.xml <!--url映射--> <servlet-mapping><servlet-name>DowloadServlet</servlet-name>&l…

在web中下载的方式大多基于servlet,在web.xml中配置下载路径,这里再介绍json(转成base64字符串)和blob的使用方式

servlet

WEB-INF/web.xml

<!--url映射-->
<servlet-mapping><servlet-name>DowloadServlet</servlet-name><url-pattern>/servlet/dowloadFile</url-pattern>
</servlet-mapping><!--指定servlet-->
<servlet><servlet-name>DowloadServlet</servlet-name><servlet-class>com.xxxxxx.servlet.DowloadServlet</servlet-class>
</servlet>

servlet代码 

protected void download(String path, String fileName) {File file = new File(path);if (!file.exists()) {logger.error("下载的文件不存在 path=" + path + ",fileName=" + fileName);}//下载OutputStream out = null;BufferedInputStream in = null;try {getResponse().setCharacterEncoding("UTF-8");getResponse().setContentType("application/vnd.ms-excel");getResponse().setHeader("Content-Disposition", "attachment; filename=" + fileName);out = getResponse().getOutputStream();in = new BufferedInputStream(new FileInputStream(path));int line;while ((line = in.read()) != -1) {out.write(line);}} catch (Exception ex) {logger.error("下载文件失败 path=" + path, ex);} finally {if (null != out) {try {out.close();} catch (Exception ex) {logger.error("关闭out异常 path=" + path, ex);}}if (null != in) {try {in.close();} catch (Exception ex) {logger.error("关闭in异常 path=" + path, ex);}}}}

js代码

通过浏览器进行下载

<a href="/serlvet/dowloadFile">下载</a> 或者window.open("/serlvet/dowloadFile")

blob

controller

关键在这响应头:application/octet-stream

protected void download(String path, String fileName) {File file = new File(path);if (!file.exists()) {logger.error("下载的文件模板不存在 path=" + path + ",fileName=" + fileName);}//下载OutputStream out = null;BufferedInputStream in = null;try {getResponse().setCharacterEncoding("UTF-8");getResponse().setContentType("application/octet-stream");getResponse().setHeader("Content-Disposition", "attachment; filename=" + fileName);out = getResponse().getOutputStream();in = new BufferedInputStream(new FileInputStream(path));int line;while ((line = in.read()) != -1) {out.write(line);}} catch (Exception ex) {logger.error("下载文件失败 path=" + path, ex);} finally {if (null != out) {try {out.close();} catch (Exception ex) {logger.error("关闭out异常 path=" + path, ex);}}if (null != in) {try {in.close();} catch (Exception ex) {logger.error("关闭in异常 path=" + path, ex);}}}}

js代码[引用博客]

// 通过后端接口下载文件
function downloadFile() {// 发起Ajax请求获取文件数据$.ajax({url: '/download',type: 'GET',dataType: 'binary',success: function(response) {// 创建Blob对象var blob = new Blob([response]);// 创建URL对象var url = URL.createObjectURL(blob);// 创建a标签并设置相关属性var link = document.createElement('a');link.href = url;link.download = 'file.txt';// 触发点击事件进行下载link.click();// 释放URL对象URL.revokeObjectURL(url);}});
}

json

controller

public Result execute() throws Exception {Result result = new Result();result.setErr_no(0);try {String xlsBase64 = xlsToBase64(param.getAbsDownPath(filePath);DataRow dr = new DataRow();dr.set("fileName",param.getFileName()+".xlsx");dr.set("fileBase64Str",xlsBase64);result.setResult(dr);}catch (Exception ex){result.setErr_no(-99);result.setErr_info("系统错误");logger.error("模板下载异常", ex);}return result;
}protected  String xlsToBase64(String path){File file = new File(path);if (!file.exists()) {logger.error("下载的文件模板不存在 path=" + path );return null;}try{return Base64Util.encodeBase64String(FileUtils.readFileToByteArray(file));}catch (Exception e){logger.error("xls文件转Base64失败 path=" + path, e);}return null;}

javascript 【引用博客】

var raw = window.atob(data.result.fileBase64Str);
var uInt8Array = new Uint8Array(raw.length);
for (var i = 0; i < raw.length; i++) {uInt8Array[i] = raw.charCodeAt(i);
}const link = document.createElement("a");
const blob = new Blob([uInt8Array],{type: 'application/vnd.ms-excel'
})link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.setAttribute('download',data.result.fileName+'.xls');document.body.appendChild(link)
link.click()document.body.removeChild(link)

http://www.mmbaike.com/news/48788.html

相关文章:

  • 企业网站包含哪些页面今天发生了什么重大新闻
  • wordpress 中文编辑器宁波seo网站排名
  • seo网站优化价格seo咨询推广
  • 品牌网站建设毛尖2成都网络营销
  • 做产品的往这看:国外工业设计网站大全!百度产品推广
  • 建网站需要什么技术百度竞价推广常用到的工具
  • 学校网站功能描述百度搜图
  • 发放淘宝优惠券的网站怎么做网站搭建平台都有哪些
  • 做电影网站投资多少近期新闻热点
  • 北京网站域名备案查询快手秒赞秒评网站推广
  • 小程序商城服务好的商家搜索引擎优化特点
  • 吴江区住房与建设局网站百度seo报价
  • 查询网站后台地址百度网盘电脑网页版
  • 购买高仿手表网站杭州seo网站排名优化
  • 网站需要备案才能建设吗会计培训班推荐
  • 做网站带微好吗东莞网络推广招聘
  • 网上哪些网站可以做设计项目免费制作链接
  • 做网站的公司哪好黄冈黄页88网黄冈房产估价
  • 移动应用开发专业就业前景惠州百度seo哪家好
  • 网站开发实训心得百度大搜推广和百度竞价
  • 可以做动画的网站都有哪些内容营销网站建设都是专业技术人员
  • ui展示 wordpress抖音seo推广
  • 企业网站营销的成功案例武汉网络推广有哪些公司
  • 网站建设考虑哪些因素网址浏览大全
  • 教务系统网站开发方法找网站设计公司
  • 东莞做外贸网站5151app是交友软件么
  • 网站制作软件手机版对网络营销的认识800字
  • php做的网站首页是什么文件如何优化seo
  • 学做网站从零开始百度关键词优化多久上首页
  • 个性手绘个人网站模板下载广告推广投放平台