`

java文件下载

    博客分类:
  • java
阅读更多
在网页编程时,文件下载,有一种方法就是用超链接直接指向文件所在路径(url),但该方法有一些弊端,一是在某些浏览器中会直接在网页中打开所在下载的文件,另外一个就是遇到中文文件名时,也会容易出错。解决这一问题,可直接在java代码中编写下载,如下:
public void downLoad(String id) throws IOException
{
    DocZhidu bo=(DocZhidu)dao.getObjectById(DocZhidu.class, id);
    File file = new File(ServletActionContext.getServletContext().getRealPath(DocZhiduCons.uploadPath) + "/"+bo.getName());
    FileInputStream f = new FileInputStream(file);
    byte[] fb = new byte[f.available()];
    f.read(fb);
    ServletActionContext.getResponse().setHeader("Content-disposition",
				"attachment; filename=" + new String(bo.getName().getBytes("gb2312"), "iso8859-1"));
    ByteArrayInputStream bais = new ByteArrayInputStream(fb);
    int b;
    while ((b = bais.read()) != -1)
    {
      ServletActionContext.getResponse().getOutputStream().write(b);
    }
    ServletActionContext.getResponse().getOutputStream().flush();
}


如果文件不存在时,可能会报错,上面是将异常抛出,下面代码作一简单改造,自已捕获异常并返回错误信息。
public String downLoad(String id)
{
    DocZhidu bo=(DocZhidu)dao.getObjectById(DocZhidu.class, id);
    File file = new File(ServletActionContext.getServletContext().getRealPath(DocZhiduCons.uploadPath) + "/"+bo.getName());
    String info=null;
    try {
        FileInputStream f = new FileInputStream(file);
        byte[] fb = new byte[f.available()];
        f.read(fb);
        ServletActionContext.getResponse().setHeader("Content-disposition",
 "attachment; filename=" + new String(bo.getName().getBytes("gb2312"), "iso8859-1"));
        ByteArrayInputStream bais = new ByteArrayInputStream(fb);
        int b;
        while ((b = bais.read()) != -1)
        {
          ServletActionContext.getResponse().getOutputStream().write(b);
        }
        ServletActionContext.getResponse().getOutputStream().flush();
    } 
    catch (IOException e)
    {
        info="下载的文件不存在,可能已被删除!";
    }
    return info;
}
3
11
分享到:
评论

相关推荐

    ajax实现java文件下载

    本话题将详细探讨如何通过Ajax实现Java文件的下载,并介绍相关的核心概念和技术。 1. **Ajax**(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。它通过JavaScript...

    Java文件下载的几种方式.txt

    Java文件下载的几种方式,是很方便的,找了半天找到了,共享一下

    VUE + java 文件下载

    前端vue,后端java。 如果前端是其他语言,可自行转换。 实现在浏览器前端点击后的文件下载。 不是整个工程代码,只把涉及到下载用的前端的代码和后端的代码贴出来了,可以直接复制使用,有详细的步骤。 包含了前端...

    java文件下载的工具类

    文件下载的工具类java代码,设置编码格式,避免下载中文乱码

    java文件下载工具类

    java文件下载工具类

    JAVA文件下载(限速、进度条)

    进度条:78%[===================> ]97.7K/s, will be finished in 75.59s 限速、文件网络地址、文件本地路径,均可在代码里修改。

    雪花算法工具类(java文件下载直接用)

    分布式全局唯一ID生成算法,

    java 文件下载实例

    用Java脚本本在jsp里面写的,采用流的形式下载文件,非常简单,只是实现了下载的功能,

    Java API文档.docx

    Java API文档是Java开发者不可或缺的参考资料,它详细记录了Java编程语言的标准库,包括类、接口、方法和属性等核心元素。这些文档不仅提供技术规格,还包含使用示例,帮助程序员理解和应用Java的各类功能。 1. **...

    java文件下载工具类,可以下载文件

    java文件下载工具类,可以下载文件

    java 文件下载类

    Java实现文件下载,支持好几种下载方法,解决了中文文件名乱码问题.

    Java文件管理系统源码.zip

    Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 ...

    Java文件工具类

    Java文件工具类

    Java下载器的简单实现及实时进度和速度获取

    在Java编程领域,开发一个下载器是常见的任务,特别是对于处理大文件或网络资源时。本文将深入探讨如何实现一个简单的Java下载器,并且重点讲解如何实现下载的实时进度显示和速度计算。以下是对这个主题的详细阐述:...

    Java 利用多线程实现文件的分片下载

    大文件的快速下载,经测试在100M带宽的网络下,下载一个40M的文件,不超过两秒钟,当然还得根据自己电脑的配置来讲。 其他说明: 文件如果特别小,而自己网络又非常好的情况下,不建议使用线程池进行下载,因为...

    java文件下载源代码

    后台代码不用写了,在action中直接输入文件地址调用

    [Java参考文档].JDK_API_1_6_zh_CN.CHM百度网盘下载地址

    下载完成后,用户可以直接双击文件图标打开文档查看。大多数操作系统默认都配备了 CHM 文件阅读器,如 Windows 自带的 HTML Help Workshop 就可以用来打开和浏览 CHM 文件。 ### 4. 学习与实践 对于希望深入学习 ...

    java图形化实现文件上传_javagui上传文件,gui编写上传下载文件功能-Java文档类资源

    (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 (2)单击“上传服务器”窗口中的“启动服务..”按钮。 (3)单击“上传...

    java使用itext实现pdf文件下载

    在Java开发中,生成和处理PDF文档是一项常见的需求。Itext是一个强大的库,它允许开发者在Java环境中创建、编辑和修改PDF文档...通过实践和理解这些示例,你将能够熟练地在Java项目中运用Itext处理PDF文件的下载需求。

Global site tag (gtag.js) - Google Analytics