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 相关文章推荐
Highslide.js是一款基于js实现的网页中图片展示插件
Mar 30 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
Sep 22 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
Mar 18 Javascript
JS数组(Array)处理函数整理
Dec 07 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 Javascript
javascript DIV实现跟随鼠标移动
Mar 19 Javascript
基于jquery实现ajax无刷新评论
Aug 19 Javascript
jQuery中的each()详细介绍(推荐)
May 25 Javascript
jQuery异步提交表单的两种方式
Sep 13 Javascript
详解如何在vue项目中使用lodop打印插件
Sep 27 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
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
Vue header组件开发详解
2018/01/26 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
企业管理专业个人求职信范文
2013/09/24 职场文书
会计电算化专业应届大学生求职信
2013/10/22 职场文书
教师绩效工资方案
2014/02/01 职场文书
小学母亲节活动方案
2014/03/14 职场文书
高一军训口号
2015/12/25 职场文书
小学毕业教师寄语
2019/06/21 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技