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.location.hash 属性使用说明
Mar 20 Javascript
深入理解JSON数据源格式
Jan 10 Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
详解js前端代码异常监控
Jan 11 Javascript
关于Bootstrap按钮组件消除黄框的方法
May 19 Javascript
AngularJs分页插件使用详解
Jun 30 Javascript
Vue cli构建及项目打包以及出现的问题解决
Aug 27 Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 Javascript
JavaScript实现打砖块游戏
Feb 25 Javascript
详解vue路由
Aug 05 Javascript
vue常用高阶函数及综合实例
Feb 25 Vue.js
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
晶体管单管来复再生式收音机
2021/03/02 无线电
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
JQuery中解决重复动画的方法
2016/10/17 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
基于python3实现socket文件传输和校验
2018/07/28 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
怎样写演讲稿
2014/01/04 职场文书
教师求职自荐书
2014/06/14 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
利用python做表格数据处理
2021/04/13 Python
win10下go mod配置方式
2021/04/25 Golang
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis