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 相关文章推荐
通过JS 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
Jul 15 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
JavaScript定时器和优化的取消定时器方法
Jul 03 Javascript
Bootstrap每天必学之前端开发框架
Nov 19 Javascript
基于jQuery实现仿51job城市选择功能实例代码
Mar 02 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
May 28 Javascript
AngularJS Bootstrap详细介绍及实例代码
Jul 28 Javascript
vue兄弟组件传递数据的实例
Sep 06 Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 Javascript
Javascript基于OOP实实现探测器功能代码实例
Aug 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
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
yii操作session实例简介
2014/07/31 PHP
深入浅析php json 格式控制
2015/12/24 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
js取得url地址参数实例
2013/02/22 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
Python实现的文本编辑器功能示例
2017/06/30 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
python支付宝支付示例详解
2019/08/22 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
挪威手表购物网站:Klokker
2016/09/19 全球购物
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
上海方立数码笔试题
2013/10/18 面试题
关于Assembly命名空间的三个面试题
2015/07/23 面试题
财务会计应届生求职信
2013/11/24 职场文书
平面设计岗位职责
2013/12/14 职场文书
学习党代会心得体会
2014/09/05 职场文书
考试作弊检讨书
2014/10/21 职场文书