js下载文件并修改文件名


Posted in Javascript onMay 08, 2017

用js下载文件,使用<a>标签,添加download属性即可。

var a = document.createElement("a");
a.href = "http://XXX.com/audioStream/8a9dbae9d0859e48fc1f590fcf6d4ccc.mp3";
a.download ="test.mp3";
a.click();

但是如果想给文件重新命名,貌似js无法实现。

因此考虑后台实现,用java代理请求,获取文件设置文件名,返回到前端。

public void downFiles(HttpServletResponse response,String url,String workInfoId,int type){
  try{
   String prefix = type == 1 ? "wav" : "txt";
   url = type == 1 ? url : (url + "?textInfoId="+workInfoId);
   HttpEntity entity = Request.Get(url).
     execute().returnResponse().getEntity();
   byte[] bys = EntityUtils.toByteArray(entity);
   //获取作品名称
   Works works = this.worksDao.findByWorkId(workInfoId);
   String name = (works!=null && StringUtils.isNotBlank(works.getName())) ? works.getName() : Long.toString(new Date().getTime());
   response.setHeader("Content-Disposition", "attachment; filename="+ new String(name.getBytes("utf-8"), "ISO-8859-1")+"."+prefix);
   OutputStream out = response.getOutputStream();
   out.write(bys);
   out.close();
  }catch (Exception e){
   e.printStackTrace();
  }

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
通过location.replace禁止浏览器后退防止重复提交
Sep 04 Javascript
Javascript毫秒数用法实例
Feb 05 Javascript
JavaScript实现点击按钮切换网页背景色的方法
Oct 17 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
简单谈谈JS中的正则表达式
Sep 11 Javascript
Angular4集成ng2-file-upload的上传组件
Mar 14 Javascript
vue实现简单loading进度条
Jun 06 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 Javascript
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
使用Ajax实现进度条的绘制
Apr 07 Javascript
JS将unicode码转中文方法
May 08 #Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 #Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 #Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 #jQuery
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 #Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
May 07 #Javascript
Angular2中select用法之设置默认值与事件详解
May 07 #Javascript
You might like
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
js的写法基础分析
2011/01/17 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
Python基于有道实现英汉字典功能
2015/07/25 Python
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
Python tkinter label 更新方法
2018/10/11 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
浅析python中的del用法
2020/09/02 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
廉政教育心得体会
2014/01/01 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
差生评语大全
2014/05/04 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书