js下载文件并修改文件名

用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();
    }

  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JSP 点击链接后下载文件(相当于右键另存)功能

    复制代码 代码如下: /** * 实现文件另存功能 * * @param text * 文件内容 * @param fileName * 文件名称 * @return */ protected String renderFile(String text, String fileName) throws IOException { response.addHeader("Content-Disposition", "attachment; filename=" + f

  • 用JS在浏览器中创建下载文件

    但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打开->另存为.如下面这个链接: 复制代码 代码如下: <a href="file.js">file.js</a> 用户点击这个链接的时候,浏览器会打开并显示链接指向的文件内容,显然,这并没有实现我们的需求.HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载(目前只有chrome.firefox和opera支持). 下载时会

  • 使用JS代码实现点击按钮下载文件

    正文 有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法: 现在需要在页面上添加一个下载按钮,点击按钮下载文件. 题外话,这个下载图标是引用的 font-awesome 上面的.使用时,首先将 font-awesome 整个文件夹下载下来,利用bower或者是自己去官网上面下载都行. 将整个文件夹放在项目文件中之后,在页面上面引入css文件 <link href="libs/font-awesome-4.7.0/css/font

  • JSP实现从不同服务器上下载文件的方法

    本文实例讲述了JSP实现从不同服务器上下载文件的方法.分享给大家供大家参考,具体如下: 最近在项目当中遇到模板下载的问题:当服务器为Tomcat的时候文件可以正常下载,但是当放到线上(WebLogic服务器)下载的模板为空,现记录下解决办法. public void importSuccess() throws Exception { try { HttpServletResponse response = Struts2Utils.getResponse(); // 重置响应 response

  • JS下载文件|无刷新下载文件示例代码

    后台代码Handler.ashx 复制代码 代码如下: <%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { string fileName = "web.conf

  • jsp下显示中文文件名及绝对路径下的图片解决方法

    (1)jsp显示中文文件名的图片 方法一.将Tomcat中的server.xml文件中改为: 复制代码 代码如下: <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redir

  • JAVASCRIPT模式窗口中下载文件无法接收iframe的流

    在打开的模式窗口中,如果要借助于模式窗口接受服务器的流,通常需要隐藏一个iframe;有时候,然后采用iframe.src的形式去做请求:有时,在下载时发现服务器无法接收iframe的流,因为在模式窗口中没有触发iframe的src重新定向事件,普通的窗口无此问题. 具体解决办法: 在模式窗口的父窗口中隐藏一个iframe,下载的地址指向这个iframe.

  • 使用smartupload组件实现jsp+jdbc上传下载文件实例解析

    SmartUpload组件只有5个分别是:File.Files.Request.SmartUpload.SmartUploadException类,其中,File代表用户上传的文件,Files代表用户上传的多个文件,Request相当于HttpServletRequest的功能,用于获取表单数据,SmartUpload是最核心的类,负责文件上传下载,SmartUploadException是自定义异常.    SmartUpload的基本使用思路如下: jsp前台代码表单提交 <form act

  • 获取URL地址中的文件名和参数的javascript代码

    复制代码 代码如下: //获取页面文件名 function GetPageName() { var url=window.location.href;//获取完整URL var tmp= new Array();//临时变量,保存分割字符串 tmp=url.split("/");//按照"/"分割 var pp = tmp[tmp.length-1];//获取最后一部分,即文件名和参数 tmp=pp.split("?");//把参数和文件名分割开

  • js自动下载文件到本地的实现代码

    复制代码 代码如下: <html> <head> <title>js自动下载文件到本地</title> <script language="javascript" type="text/javascript"> function InitAjax() { var ajax; if(window.ActiveXObject){ var versions = ['Microsoft.XMLHTTP', 'MSX

随机推荐