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 相关文章推荐
项目实践之javascript技巧
Dec 06 Javascript
javascript时区函数介绍
Sep 14 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
javascript实现动态标签云
Oct 16 Javascript
逻辑表达式中与或非的用法详解
Jun 06 Javascript
JS+CSS3实现超炫的散列画廊特效
Jul 16 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
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-fpm 参数的深入理解
2013/06/03 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
2013/06/06 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
php封装的验证码类分享
2017/02/26 PHP
手机号码,密码正则验证
2014/09/04 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python中sys.argv参数用法实例分析
2015/05/20 Python
python3抓取中文网页的方法
2015/07/28 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
小结Python的反射机制
2020/09/28 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
优秀员工评语
2014/02/10 职场文书
数学检讨书1000字
2014/02/24 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android
Java Spring读取和存储详细操作
2022/08/05 Java/Android