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 mobile做幻灯播放效果实现步骤
Jan 04 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
Highcharts入门之基本属性
Aug 02 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
Feb 09 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
VUE重点问题总结
Mar 19 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
Jun 07 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
Apr 28 Javascript
javascript实现倒计时关闭广告
Feb 09 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 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
毕业生就业自荐信
2013/12/04 职场文书
医院办公室主任职责
2013/12/29 职场文书
寒假实习自荐信
2014/01/26 职场文书
运动会入场词60字
2014/02/15 职场文书
怎样填写就业意向
2014/04/02 职场文书
服务标语口号
2014/07/01 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP