`

java file download

阅读更多
public HttpServletResponse download(String path, HttpServletResponse response) {
        try {
            // path是指欲下载的文件的路径。
            File file = new File(path);
            // 取得文件名。
            String filename = file.getName();
            // 取得文件的后缀名。
            String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

            // 以流的形式下载文件。
            InputStream fis = new BufferedInputStream(new FileInputStream(path));
            byte[] buffer = new byte[fis.available()];
            fis.read(buffer);
            fis.close();
            // 清空response
            response.reset();
            // 设置response的Header
            response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
            response.addHeader("Content-Length", "" + file.length());
            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
            response.setContentType("application/octet-stream");
            toClient.write(buffer);
            toClient.flush();
            toClient.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return response;
    }

    public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
        // 下载本地文件
        String fileName = "Operator.doc".toString(); // 文件的默认保存名
        // 读到流中
        InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路径
        // 设置输出的格式
        response.reset();
        response.setContentType("bin");
        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        // 循环取出流中的数据
        byte[] b = new byte[100];
        int len;
        try {
            while ((len = inStream.read(b)) > 0)
                response.getOutputStream().write(b, 0, len);
            inStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void downloadNet(HttpServletResponse response) throws MalformedURLException {
        // 下载网络文件
        int bytesum = 0;
        int byteread = 0;

        URL url = new URL("windine.blogdriver.com/logo.gif");

        try {
            URLConnection conn = url.openConnection();
            InputStream inStream = conn.getInputStream();
            FileOutputStream fs = new FileOutputStream("c:/abc.gif");

            byte[] buffer = new byte[1204];
            int length;
            while ((byteread = inStream.read(buffer)) != -1) {
                bytesum += byteread;
                System.out.println(bytesum);
                fs.write(buffer, 0, byteread);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

//支持在线打开文件的一种方式
    public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {
        File f = new File(filePath);
        if (!f.exists()) {
            response.sendError(404, "File not found!");
            return;
        }
        BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
        byte[] buf = new byte[1024];
        int len = 0;

        response.reset(); // 非常重要
        if (isOnLine) { // 在线打开方式
            URL u = new URL("file:///" + filePath);
            response.setContentType(u.openConnection().getContentType());
            response.setHeader("Content-Disposition", "inline; filename=" + f.getName());
            // 文件名应该编码成UTF-8
        } else { // 纯下载方式
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());
        }
        OutputStream out = response.getOutputStream();
        while ((len = br.read(buf)) > 0)
            out.write(buf, 0, len);
分享到:
评论

相关推荐

    java web download file

    Java Web 下载文件 在Java Web开发中,文件下载是一个常见的功能,比如用户需要下载网站上的图片、文档或任何其他类型的资源。这个过程涉及到HTTP协议、服务器端处理以及客户端交互。下面我们将深入探讨如何实现这...

    java_download

    ### 知识点一:Java中实现文件下载的基本原理 在Java Web开发中,实现文件下载功能是常见需求之一。该功能通常涉及通过HTTP协议将服务器上的文件传输给客户端,并提示用户进行下载。在Java中,可以利用`Servlet`...

    java-remote-file-download.rar_file java_remote

    标题“java-remote-file-download.rar_file java_remote”表明我们关注的是一个使用Java处理远程文件下载的项目。这个项目可能包含了一个名为“java-remote-file-download.java”的源代码文件,这个文件将演示如何...

    ajax实现java文件下载

    5. **file.jsp**:这是一个JSP(Java Server Pages)文件,是Java Web应用中常用的视图层组件。在这里,它可能包含了Ajax请求的发起代码,通过JavaScript(可能使用jQuery或Fetch API)向FileAction发送请求,请求...

    Android-使用DownloadManager下载完apk自动提示安装的功能

    在Android应用开发中,有时我们需要实现一个功能,即使用系统内置的`DownloadManager`服务来下载APK文件,并在下载完成后自动提示用户进行安装。这个功能对于应用的更新或者安装外部资源非常实用。本文将详细讲解...

    HttpGet.rar_httpget_java HttpGet_java download save

    标题中的"HttpGet.rar_httpget_java HttpGet_java download save"表明这是一个关于使用Java实现HttpGet方法进行文件下载并保存的示例。HttpGet是HTTP协议中的一个请求方法,常用于从服务器获取资源。在这个项目中,...

    Java-multithreaded-HTTP-and-download.rar_java http download

    `FileAccess.java`则可能是用于文件I/O操作的类,它可能包含读写文件、检查文件是否存在、创建目录等方法。 这个项目的核心思想是通过多线程并行下载,将大文件分割成多个小块,每个线程负责一块的下载,这样可以...

    Java Language Conversion Assistant

    Java Language Conversion Assistant is a tool that automatically converts existing Java-language code into Visual C#® Quick Info File Name:VS7.1-KB819018-X86.exe Download Size:10092 KB Date Published:...

    FileUploadAndDownLoad

    本主题“FileUploadAndDownLoad”将深入讲解如何使用JSP(JavaServer Pages)技术来实现这一功能。JSP是一种基于Java的服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,从而动态生成网页内容。 首先,...

    android download file

    DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); ``` 3. 创建下载请求: 创建一个`DownloadManager.Request`对象,设置下载URL、目标存储位置等参数。 ```...

    url download File

    本知识点主要围绕“url download File”这一主题展开,介绍如何通过编程从互联网上获取文件并将其保存到本地。 首先,我们需要了解URL(Uniform Resource Locator),它是统一资源定位符,是互联网上的资源的唯一...

    java另存为下载xml

    Java的`java.io.File`类提供了删除文件的方法: ```java import java.io.File; public class FileOperations { public static void deleteFile(String filePath) { File file = new File(filePath); if (file....

    Java for the Web with Servlets,JSP,and EJB,A Developer's Guide to J2EE Solutions

    In addition to excellent content, this book includes licenses to two Java web components from BrainySoftware.com. You receive a full license of the Programmable File Download component for commercial ...

    FileUpLoadAndDownLoad

    标题“FileUpLoadAndDownLoad”和描述“FileUpLoadAndDownLoad上传”都直指这一主题。文件上传允许用户将本地计算机上的文件传输到服务器,而下载则是相反的过程,服务器上的文件被获取并保存到用户的设备上。在标签...

    Spring MVC upload/download file(注释和非注释实现)

    import java.nio.file.Paths; @Controller @RequestMapping("/download") public class FileDownloadController { @GetMapping("/{filename}") public ResponseEntity<?> handleFileDownload(@PathVariable ...

    file_upload_and_download_system.rar_Java tomcat

    1. 用户在前端页面(HTML表单)上选择文件,通过`<input type="file">`标签。 2. 表单使用`enctype="multipart/form-data"`指定MIME类型,以便传输文件数据。 3. 用户提交表单后,服务器端的Servlet接收到请求,使用...

    java文件下载的常用方式

    在Java编程中,文件下载是常见的需求,例如从服务器向客户端传输文件,或者在应用程序内部获取网络资源。本文将详细探讨Java实现文件下载的几种主要方法。 ### 1. 使用HttpServletResponse #### 1.1 设置Content-...

    Java上传下载ftp上的文件

    File downloadFile = new File("/path/to/download/file.txt"); OutputStream outputStream = new FileOutputStream(downloadFile); ftpClient.retrieveFile("/path/to/remote/file.txt", outputStream); ...

    java -minio.rar

    String destFile = "/path/to/download/file"; minioClient.getObject( GetObjectArgs.builder().bucket(bucketName).object(objectName).destination(destFile).build()); ``` 七、查询对象状态 通过`statObject...

    图片上传下载Java

    在处理图片上传时,通常会使用`@RequestParam("file") MultipartFile file`来接收上传的文件。 2. **存储策略**: 图片上传后,需要选择合适的存储策略。这可以是本地文件系统、数据库(如BLOB类型)或云存储服务...

Global site tag (gtag.js) - Google Analytics