`
y806839048
  • 浏览: 1118787 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

各种文件上传下载的本质

阅读更多

 

上传文件

1,文件转化成流,流再转化成文件

2,解析文件,对应格式的文件解析类,解析文件流,获取文件流中的数据,反之java生成对应的流用对应的文件解析器生成文件

 

例如excl

 XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is.getInputStream());

 

 // 创建可写入的Excel工作薄

 jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("C:/temp/"+is.getOriginalFilename()));

 

 

图片:

页面直接<img  src="" />

 

 

 

下载:

 

文件变成流response回页面, 

//2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)(包括后缀)

response.setHeader("Content-Disposition", "attachment;fileName="+fileUrl);

 

 

 

 

 

@RequestMapping(value = "/downLoad")

    public String getObject(@RequestParam("fileUrl") String fileUrl,HttpServletRequest req, HttpServletResponse resp) throws Exception {

        InputStream is = new FileInputStream(fileUrl);

        HttpServletResponse response = resp;

        ServletOutputStream out = null;

        ByteArrayOutputStream swapStream = new ByteArrayOutputStream();

        try {

 

            byte[] buf = new byte[16384];

            int bytesRead;

            while ((bytesRead = is.read(buf, 0, buf.length)) >= 0) {

                swapStream.write(buf, 0,bytesRead);

            }

 

            // Close the input stream.

            is.close();

            byte[] in_b = swapStream.toByteArray();

            response.setContentType("multipart/form-data");

            //2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)

            response.setHeader("Content-Disposition", "attachment;fileName="+fileUrl);

            out = response.getOutputStream();

            out.write(in_b);

            out.flush();

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            swapStream.close();

            if (out != null) {

                try {

                    out.close();

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

            if (response != null) {

                try {

                    response.flushBuffer();

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

        }

        return null;

    }

 

分享到:
评论

相关推荐

    PHP与Web页面交互 -文件上传和下载.ppt

    * PHP与Web页面交互 -----文件上传和下载 课程内容 文件上传 文件下载 一、文件上传 文件上传从本质上讲,就是将表单数据的一部分提交到服务器端。只是因为其数据类型(字节流或二进制流)不一样,从而导致在服务器...

    用JavaBean实现文件上传

    文件上传本质上是通过HTTP请求将文件作为请求体的一部分发送给服务器的过程。在本案例中,我们使用了一个简单的HTML表单与JavaBean相结合的方式,实现了文件的上传功能。 #### 二、分析HTML表单与Multipart/form-...

    文件上传与下载

    在IT行业中,文件上传与下载是Web应用中的常见功能,特别是在企业级系统中。本项目以Java Web开发为背景,采用JSP技术实现,并结合SQL Server数据库存储文件信息,服务器环境为Tomcat。以下是关于这个项目的详细知识...

    一个非常简单实用的文件上传示例

    文件上传的本质是通过HTTP协议将本地文件的数据发送到服务器的过程。通常,这涉及到使用HTML的`&lt;form&gt;`元素,特别是`&lt;input type="file"&gt;`字段,允许用户选择要上传的文件。当表单提交时,浏览器会将文件内容编码为...

    ASP.NET-[上传下载]多文件上传源码.zip

    2. **HTTP POST请求**:文件上传本质上是通过HTTP的POST请求完成的。当用户选择文件并提交表单时,浏览器会将文件内容作为请求体的一部分发送到服务器。 3. **服务器端处理**:在ASP.NET中,可以使用`...

    struts2文件上传源码和步骤

    文件上传的本质是客户端浏览器将本地文件以二进制流的形式发送到服务器端。在 Struts2 中,我们通常会创建一个 Action 类,该类包含用于接收文件的属性,并通过表单提交来处理文件。 2. **Struts2 单个文件上传**...

    WCF实现文件上传

    **WCF实现文件上传**是将文件通过Windows Communication Foundation(WCF)服务进行传输的一种技术。WCF是.NET Framework提供的一种全面、统一的编程模型,用于构建可互操作的分布式应用程序。下面我们将深入探讨...

    jsp上传文件样例

    文件上传的本质是HTTP协议中的POST请求,客户端(通常是浏览器)通过表单提交数据,包括文本和二进制文件,服务器端接收到这些数据后进行处理和存储。在JSP中,通常会配合Servlet和HTML表单来实现这一过程。 2. **...

    基于go的大文件切片上传、断点续传、秒传.zip

    就我们的项目而言,因为我们的文件本来就是先切片,对于我们来说,暂停文件的上传,本质上就是暂停发送下一个chunk。 5、前端上传并发数是多少? 前端的uploader.js中默认会三条线程启动并发上传,前端会在同一时刻...

    asp 无组件文件上传

    文件上传的本质是客户端浏览器将本地文件内容通过HTTP协议发送到服务器端。在ASP中,我们主要通过`&lt;input type="file"&gt;`表单元素来让用户选择文件,然后通过POST方式提交到服务器。 2. **ASP接收文件** 当用户...

    POI上传或下载JAR包

    标题中的“POI上传或下载JAR包”指的是使用Apache POI库来处理与Java档案(JAR)相关的操作,可能包括从服务器下载JAR文件或将JAR文件上传到服务器。Apache POI是一个广泛使用的开源库,主要用于读取、写入和修改...

    C# winfrom中webservice接口连接服务器上传图片和下载图片

    在C# WinForm应用开发中,常常需要与服务器进行数据交互,其中图片的上传和下载是常见的需求之一。本文将详细讲解如何通过WebService接口在WinForm应用中实现这一功能,以及涉及到的关键技术和步骤。 首先,我们...

    upload-labs文件上传靶场

    文件上传漏洞的本质在于,攻击者可以通过上传恶意文件到服务器,进而执行任意代码或获取敏感信息。在upload-labs中,你将遇到各种防御机制,如文件类型检查、文件名重命名、内容过滤等,而你需要通过研究和实验,找...

    用FileUpload控件上传文件到数据库

    1. **HTTP协议**:文件上传本质上是通过HTTP协议完成的。当用户选择一个文件并提交表单时,浏览器会通过POST方法将文件作为请求体的一部分发送给服务器。 2. **MIME类型**:每种文件都有对应的MIME类型,例如图像...

    文件上传源码

    1. **HTTP协议**:文件上传本质上是客户端(浏览器)向服务器发送带有文件数据的HTTP请求。在HTTP中,POST方法通常用于提交数据,包括文件。 2. **Multipart/form-data编码**:由于HTTP协议默认不支持文件传输,...

    jsp源码上传下载铁人下载系统Liuxing1.0-liuxing1.0

    接下来,我们将深入探讨该系统的几个核心知识点,包括JSP的基本概念、文件上传下载的实现原理以及在实际开发中的应用。 ### JSP基本概念 JSP(Java Server Pages)是一种动态网页技术标准,由Sun Microsystems公司...

    信息安全技术:文件上传漏洞简介.pptx

    文件上传漏洞的本质在于,攻击者能够绕过系统对上传文件类型的检查,从而上传非预期类型的文件,特别是可执行文件,如WebShell。WebShell是一种恶意脚本,一旦上传到服务器,就可能被攻击者用来远程控制服务器,执行...

    【ASP.NET编程知识】WebApi2 文件图片上传与下载功能.docx

    ASP.NET WebAPI2 是一种用于构建 ...在实际开发中,你可能还需要处理错误,优化性能(如使用异步操作),以及确保安全性(如验证上传文件类型,防止恶意文件上传)。这些细节都需要根据具体项目需求来调整和完善。

Global site tag (gtag.js) - Google Analytics