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 20 Javascript
javascript中parentNode,childNodes,children的应用详解
Dec 17 Javascript
js树插件zTree获取所有选中节点数据的方法
Jan 28 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
微信小程序之GET请求的实例详解
Sep 29 Javascript
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
JS实现面向对象继承的5种方式分析
Jul 21 Javascript
vue全局自定义指令-元素拖拽的实现代码
Apr 14 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 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的ob_start来生成静态页面的方法分析
2011/03/09 PHP
PHP eval函数使用介绍
2013/12/08 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
python实现简单登陆流程的方法
2018/04/22 Python
python 实现二维列表转置
2019/12/02 Python
详解python破解zip文件密码的方法
2020/01/13 Python
Python修改列表值问题解决方案
2020/03/06 Python
Python函数参数分类原理详解
2020/05/28 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
老师给学生的表扬信
2014/01/17 职场文书
《大海那边》教学反思
2014/04/09 职场文书
代理协议书范本
2014/04/22 职场文书
给学校建议书范文
2014/05/13 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
60句有关成长的名言
2019/09/04 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL