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 相关文章推荐
基于Jquery的实现回车键Enter切换焦点
Sep 14 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
Jun 08 Javascript
js获取当月最后一天实例代码
Nov 19 Javascript
jQuery $.extend()用法总结
Jun 15 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
Jquery结合HTML5实现文件上传
Jun 25 Javascript
js命名空间写法示例
Dec 18 Javascript
JavaScript生成图形验证码
Aug 24 Javascript
angular实现input输入监听的示例
Aug 31 Javascript
vue数据初始化initState的实例详解
Apr 11 Javascript
es6数组之扩展运算符操作实例分析
Apr 25 Javascript
vue项目开启Gzip压缩和性能优化操作
Oct 26 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 split汉字
2009/06/05 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
Seajs的学习笔记
2014/03/04 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
bootstrap table实例详解
2017/01/06 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
TensorFlow打印tensor值的实现方法
2018/07/27 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
python3获取url文件大小示例代码
2019/09/18 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android
python利用while求100内的整数和方式
2021/11/07 Python