java文件下载 rest

/**
     * 返回文件二进制
     *
     */
    @GET
    @Path("/excel")
    @Produces("application/vnd.ms-excel; charset=UTF-8")
    @ModuleSecurityAuth(moduleId=ModuleId.MONITOR_REPORT ,privilegeOperation=PrivilegeOperation.READ)
    public Response download(final @QueryParam("path") String path) throws IOException {
        File file = new File("/macc/excel/"+path);    //解决文件名乱码

      String pathTmp = java.net.URLEncoder.encode(path, "UTF-8");


        ResponseBuilder response = Response.ok((Object) file);
        String header = "attachment; filename=" + pathTmp;
        response.header("Content-Disposition",
                header);
        return response.build();
    }
时间: 2024-08-10 01:18:53

java文件下载 rest的相关文章

JAVA文件下载功能问题解决日志

今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的controller方法中添加了下载的方法,type和async两个参数的四种组合都不行,弃用ajax,用window.location.href='file/download?path='+file;重新发一个新的下载请求之后,保存对话框终于弹出. 2.弹出之后,发现文件名乱码,后台的解决方案代码如下:

Java文件下载的几种方式

   本文主要是讲述Java文件下载的几种方式,更多Java技术知识,请登陆疯狂软件教育官网. publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){ try{ //path是指欲下载的文件的路径. Filefile=newFile(path); //取得文件名. Stringfilename=file.getName(); //取得文件的后缀名. Stringext=filename.substrin

关于java文件下载文件名乱码问题解决方案

关于java文件下载文件名乱码问题解决方案 做为一名程序员,大家应该都遇到过乱码的问题吧!这篇文章是自己解决关于关于java文件下载文件名乱码问题的处理: String fileName = "下载的文件名"; String userAgent = request.getHeader("User-Agent"); //针对IE或者以IE为内核的浏览器: if (userAgent.contains("MSIE")||userAgent.conta

java文件下载

文件下载,可以是post请求,也可以是get请求. 新建web项目,在WebRoot下建up目录存放上传的文件: 最简单的但是实际不会这样做的下载方式,直接用a标签指向文件目录,就能下载: <a href="<c:url value='/up/a.jpg'/>">下载jpg</a> <br /> <a href="<c:url value='/up/cos.jar'/>">下载jar</a

java 文件下载

文件下载 设置一个超链接,不就可以下载可以了吗?确实如此,但是通过超链接下载文件,暴露了下载文件的真实地址,不利于对资源进行安全保护:而且,利用超链接下载文件,服务端的文件只能存放在Web应用程序所在的目录下. 利用程序编码实现下载,可以增加安全访问控制,对经过授权认证的用户提供下载:还可以从任意位置提供下载的数据,我们可以放到Web应用程序以外的目录中,也可以将文件保存到数据库中. 利用程序实现下载也非常简单,只需要按照如下的方式设置三个报头域就可以了: Content-Type:applic

Java文件下载文件名乱码

文件下载文件名乱码主要是没有对文件名进行编码,这里适用的浏览器主要包括(IE,火狐,谷歌,360) 代码如下 //火狐浏览器 if(ServletActionContext.getRequest().getHeader("USER-AGENT").toLowerCase().indexOf("firefox") >0){ return new String(文件名.getBytes(), Const.CHARSET_ISO8859_1); } //其他浏览器

java文件下载中中文为空格的解决

在文件下载中设置的addheader中将filename设置为 filename=\""+ URLEncoder.encode(downloadFile.getName(), "UTF-8")+"\" 最后的形式为 response.addHeader("Content-Disposition", "attachment; filename=\""+ URLEncoder.encode(downl

SpringMvc之java文件下载

1.页面的一个超链接,链接到controller <a href="<%=path%>/download">点击下载文件</a> 2.controller中的代码: @RequestMapping("/download") @ResponseBody public void downLoadExcelModel(HttpServletRequest request,HttpServletResponse response) thr

java文件下载(有非常详细的注释).

话不多说,直接贴代码: //文件下载 public static String downloadFile(File file) { HttpServletResponse response = ServletActionContext.getResponse(); FileInputStream fis = null; BufferedInputStream buff = null; OutputStream out = null; try { /* 如果文件存在 */ if (file.exi