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的内存泄漏
Mar 04 Javascript
jquery text()要注意啦
Oct 30 Javascript
利用location.hash实现跨域iframe自适应
May 04 Javascript
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 Javascript
javascript中Function类型详解
Apr 28 Javascript
Javascript通过overflow控制列表闭合与展开的方法
May 15 Javascript
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
微信小程序 获取设备信息 API实例详解
Oct 02 Javascript
理解javascript async的用法
Aug 22 Javascript
react 不用插件实现数字滚动的效果示例
Apr 14 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
Aug 15 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
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
JS重要知识点小结
2011/11/06 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
原生js实现下拉选项卡
2019/11/27 Javascript
python中的五种异常处理机制介绍
2014/09/02 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
英文自荐信常用句子
2014/03/26 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
党员三严三实心得体会
2014/10/13 职场文书
师德标兵事迹材料
2014/12/19 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
vue特效之翻牌动画
2022/04/20 Vue.js