`

服务器文件下载

阅读更多
项目需求:在列表页面上提供文件下载链接

项目实现:

1.准备excel文件,将英文命名的excel文件放入 src/main/resources 目录下

2.Java实现


	public void downModel(){
		
		logger.info("loanUserOpenAccountBatchModel start");
		JSONObject jsonObject = new JSONObject();
		
		jsonObject.put("function", "downModel");
		writeJSONObject(jsonObject);
		
	}

	public HttpServletResponse downLoanUserOpenAccountModel(){
		 
		 HttpServletResponse response = ServletActionContext.getResponse();
		 String path = "";
		 try {
			 // /excelModel/loan_user_open_account_batch.xlsx 本地测试地址
			 File textf = new File("/data/j2ee/jr/excelModel", "loan_user_open_account_batch.xlsx");
//			 path = ServletActionContext.getServletContext().getResource("/data/j2ee/jr/excelModel").getPath();
			 path = textf.getPath();
			 logger.info("downLoanUserOpenAccountModel path:"+path);
		 } catch (Exception e) {
			logger.error("downLoanUserOpenAccountModel error"+e.getMessage(),e);
		 }
		 logger.info("Excel 模板下载 ,path:"+path);
		 try {
          // path是指欲下载的文件的路径。
          File file = new File(path);
          // 取得文件名。
          String filename = file.getName();
          // 取得文件的后缀名。
          String ext = filename.substring(filename.lastIndexOf(".") + 1);
          // 以流的形式下载文件。
         InputStream fis = new BufferedInputStream(new FileInputStream(path));
          byte[] buffer = new byte[fis.available()];
          fis.read(buffer);
          fis.close();
          // 清空response
          response.reset();
          
          // 设置response的Header
          //设置文件ContentType类型,这样设置,会自动判断下载文件类型  
          response.setContentType("multipart/form-data");
          response.addHeader("Content-Disposition", "attachment;filename=" + new String("借款人批量开户模板".getBytes("gb2312"), "ISO8859-1" )+"."+ext.toLowerCase());
          response.addHeader("Content-Length", "" + file.length());
          OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
          response.setContentType("application/octet-stream");
          toClient.write(buffer);
          toClient.flush();
          toClient.close();
          logger.info("EXCEL 模板下载 成功");
          
      } catch (IOException ex) {
          ex.printStackTrace();
          logger.error("EXCEL 模板下载 异常");
          return null ;
}
      return response;
		
	}


3.注意

文件的存放路径

在本地测试及测试环境提测

		 try {
			 path = ServletActionContext.getServletContext().getResource("/excelModel/loan_user_open_account_batch.xlsx").getPath();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}


因为文件放在 src/main/resources 所以此种方式能够获取到文件

但发布到正式环境时,运维说文件不能放在此目录下,src 下只能防止工程的配置文件

所以只能放置在某个其他目录下,对应的下载地址则变为linux 服务上的路径地址

文件的获取方式也不能使用 getResource
分享到:
评论

相关推荐

    实现服务器文件下载,使你一看就明白

    在ASP.NET中实现服务器文件下载是一项常见的任务,尤其对于开发Web应用程序时,用户可能需要下载存储在服务器上的文件,如文档、图片或数据。以下是对给定文件内容的详细解释: 1. **文件下载流程**: - 首先,...

    佳可服务器文件下载程序

    此程序可以将一般服务器的文件下载到您电脑某个文件夹里(自己选),在下载的文件大小有点大的时候,会出现未响应的情况,此乃正常现象(如果系统提示程序错误,可能是文件过大或文件处于保护状态、程序出错)。

    JAVA下载远程Linux服务器的文件

    在Java编程中,有时我们需要与远程Linux服务器进行交互,例如下载或上传文件。在这个场景下,我们可以使用SMB(Server Message Block)协议,这是一种网络文件共享协议,常见于Windows系统,但同样可以应用于Linux...

    java上传文件到linux服务器,操作linux服务器上文件,下载linux服务器文件,删除linux服务器文件

    **下载Linux服务器文件** 下载文件的过程与上传类似,只是使用了`get()`方法。该方法会将服务器上的文件下载到本地。 ```java sftp.get(远程文件路径, 本地保存路径); ``` **删除Linux服务器文件** 删除文件可以...

    文件上传下载服务器

    文件上传下载服务器是一种重要的网络服务,它为用户提供了一个方便、高效的方式来交换文件,特别是对于教育机构,如学校,教师可以利用这种服务收发作业、试卷等教学材料。在这个场景下,教师无需通过邮件或者传统的...

    下载服务器文件到本地,并删除已下载的服务器文件

    在IT行业中,下载服务器文件到本地以及在下载后删除服务器上的源文件是一项常见的操作,尤其在数据迁移、备份或更新场景下。以下是一些相关的知识点: 1. **FTP(File Transfer Protocol)**:FTP是最传统的文件...

    libevent实现http服务器实现文件下载功能

    在IT行业中,构建一个HTTP服务器以提供文件下载功能是常见的需求。在这个场景下,我们可以使用libevent库来实现高效、轻量级的事件驱动网络编程。libevent是一个跨平台的库,用于处理大量并发连接,尤其适用于服务器...

    delphi做的文件上传下载服务器端

    标题 "delphi做的文件上传下载服务器端" 描述了一个使用Delphi编程语言开发的服务器程序,该程序专门设计用于处理文件的上传和下载功能。在IT领域,这样的系统通常涉及网络编程、多线程和并发处理,以确保能有效地...

    svn服务器端下载svn服务器端下载svn服务器端下载

    在本场景中,我们关注的是如何下载和安装SVN的服务器端。 首先,SVN服务器端是整个版本控制系统的核心,它存储和管理所有版本的代码库。开发者通过客户端连接到服务器,进行代码的提交、更新和差异比较等操作。为了...

    socke多线程多服务器分段下载文件

    本文将深入探讨如何使用`socket`实现多线程多服务器分段下载文件的技术细节,这是一项旨在提高文件下载速度并支持断点续传的重要技术。 首先,我们要理解`socket`的基本概念。`socket`是网络通信中的一个接口,它...

    使用IO流实现服务器文件下载

    通过java编程,实现使用IO流下载服务器文件,为HTTP层文件传输

    从指定服务器下载文件

    在IT行业中,从指定服务器下载文件是一项常见的任务,特别是在网络数据传输、软件更新或系统部署等场景中。这里,我们将详细探讨如何实现这个过程,尤其是利用多线程技术提高下载效率。 首先,我们需要理解基本的...

    服务器批量下载工具

    在IT领域,服务器批量下载工具是一种非常实用的软件,它能帮助用户高效地从网络上获取大量文件。本文将深入探讨此类工具的功能、工作原理以及它们在FTP和Web环境中的应用。 首先,我们要理解“服务器批量下载工具”...

    HTTP从文件服务器下载文件

    对于大文件,服务器可能会使用断点续传机制,允许客户端中断后继续下载,提高了下载的可靠性和效率。 下载附件是这个过程的一个具体应用场景,尤其在Web开发中。比如,当你在网页上点击一个链接下载文件时,浏览器...

    mqtt协议常用服务器文件下载Apollo

    网页文件

    HTTP服务器上断点下载文件

    断点续传是指从服务器下载文件时,可以从上次下载的位置继续下载,避免了从头开始下载的麻烦。检查更新是指检查服务器上的文件是否有变化,如果有变化,则下载最新的文件。 在实现断点续传和检查更新时,我们可以...

    HTTP文件下载服务器

    【HTTP文件下载服务器】是一种基于HTTP协议的简单服务,它允许用户通过Web浏览器访问和下载存储在特定目录下的文件。这种技术广泛应用于软件分发、资源共享等场景,尤其在个人或小团队内部共享文件时非常方便。开启...

    服务器下载文件方式

    服务器下载文件方式,支持文件流方式下载,WriteFile分片方式下载

    服务器上下载文件

    "服务器上下载文件"这个主题涉及到了网络通信和文件管理的核心概念。这里,我们将深入探讨FTP(File Transfer Protocol,文件传输协议),它是互联网上用于在不同系统之间交换文件的标准化通信协议。 FTP允许用户从...

    大势至FTP文件服务器日志记录软件 v1.1.rar

    大势至FTP文件服务器日志记录软件是一款专门记录FTP服务器文件访问日志的软件,只需要在FTP服务器上部署即可,局域网其他电脑不需要部署,就可以全面记录FTP服务器文件上传、记录FTP文件服务器文件下载、修改FTP...

Global site tag (gtag.js) - Google Analytics