`
lixw
  • 浏览: 200816 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

HTTP原始方法上传下载文件

阅读更多

上传:

1、设置表单的ENCTYPE='multipart/form-data'和method='post';

注意:这时候form表单中的其他参数在后台无法利用request.getParameter("paramName")获得,需要利用JS以参数的形式附加到提交URL后面。

2、利用InputStream in = request.getInputStream()以流的方式读取文件;

注意:剔除文件的头信息,占四行,可利用下面的方式:

         for(int i = 0; i < 4; i++){
         in.readLine();
         }

3、写到输出流。

注意:利用缓冲区提高效率;调用out.flush()强制刷新缓冲区。

下载:

1、设置响应头信息:response.setContentType("application/octet-stream;charset=UTF-8");

2、设置附加文件信息:response.setHeader("Content-Disposition", "attachment; filename="
     + fileName);

注意:对于文件名fileName需要解决不同浏览器上对汉字编码的处理,这需要commons-codec库的支持,工具代码如下:

/**
* 根据不同浏览器对文件名进行编码
* @param request 客户端请求
* @param fileName 文件名
* @return 编码后的文件名
*/
public String encodeFileName(HttpServletRequest request, String fileName){   
     String agent = request.getHeader("USER-AGENT");
     try{
      if (null != agent && -1 != agent.indexOf("MSIE")) {   
          return URLEncoder.encode(fileName, "UTF-8");   
      }else if (null != agent && -1 != agent.indexOf("Mozilla")) {   
          return "=?UTF-8?B?"+
             new String(
              Base64.encodeBase64(
                fileName.getBytes("UTF-8")
               )
             ) + "?=";   
      } else {   
          return fileName;   
      }
     }catch(UnsupportedEncodingException e){
     return null;
     }
}

 

3、利用输出流提供下载:OutStream out = response.getOutputStream()。

第三方上传组件:

commons-fileupload, cos, pell, jspsmartupload等。

分享到:
评论

相关推荐

    通用文件上传下载接口使用说明.docx

    在文件上传部分,我们需要关注文件主键id,它是文件上传的唯一标识符,上传文件时将返回该id,以便后续下载和删除操作。 文件上传接口的URI为/iot/iotware/v2/file/upload,请求方法为POST,传输协议为HTTP/HTTPS。...

    最原始的多文件上传处理方法

    在ASP.NET中,多文件上传是一项常见的功能,尤其在web应用程序中,用户可能需要一次上传多个文件,如图片、文档等。"最原始的多文件上传处理方法"可能指的是使用HTML表单和ASP.NET服务器控件来实现这一功能。虽然...

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

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

    javaweb文件上传与下载模块源代码

    - 为了防止大文件上传导致服务器资源耗尽,通常会设置上传文件的大小限制。这可以通过配置Servlet容器的限制或在代码中检查`Content-Length`头来实现。 6. **文件下载**: - 文件下载可以通过设置响应头的`...

    文件上传及下载

    在IT领域,文件上传与下载是网络应用中的基础功能,广泛应用于各种Web服务,如社交媒体、云存储平台、协作工具等。本主题将深入探讨这一关键领域的相关知识点,包括文件上传下载的基本原理、hash算法在文件存储中的...

    文件上传和下载

    `uploadPath`字段表示上传文件的目标路径,`BUFSIZE`定义了每次读取的字节数,`paramHt`和`updFileArr`则用于存储上传文件的参数和文件名。 在处理请求时,`JspFileUpload`类会遍历请求的多部分数据,检查每个部分...

    文件上传下载详细版

    `MyJspSmartUpload`是一个针对中文环境优化过的文件上传组件,它解决了原始`jspSmartUpload`在处理中文文件名时可能出现的问题,提供了更清晰的代码结构和注释,使得开发者能够更加便捷地集成文件上传下载功能到他们...

    c# web上传下载文件示例

    - 上传文件时,应验证文件类型和大小,防止恶意文件或过大文件导致的安全问题。 - 文件名应进行安全处理,避免路径遍历攻击。 - 下载文件时,确保只有授权用户可以访问特定文件,例如,通过检查用户权限。 总之...

    swfupload 原始尺寸上传

    SWFUpload 是一款开源的Flash上传组件,它允许用户在网页上实现文件的批量上传,尤其适用于处理大文件和图片的上传...通过深入理解SWFUpload的使用方法和配置选项,开发者可以构建出高效且用户体验良好的文件上传系统。

    springboot+vue实现超大文件分片极速上传与下载完整前后端源码

    2. 分片上传:使用Ajax或Fetch API异步上传文件分片,同时发送分片的序号和哈希值。 3. 服务器端处理:接收分片,存储,并记录文件分片状态。 4. 断点续传管理:在客户端保存上传进度,服务器端保存已上传分片信息。...

    struts2文件上传下载

    通过`List&lt;String&gt; imageContentType`可以获取上传文件的MIME类型,`List&lt;String&gt; imageFileName`则可以获取文件的原始文件名。这些信息对于正确处理上传的文件非常重要。 5. **上传成功后的提示** 在文件上传...

    java上传,下载组件

    它提供了读取和处理上传文件的方法,如`getBytes()`、`getOriginalFilename()`和`isEmpty()`等。开发者可以利用这些方法来获取文件内容、原始文件名和判断文件是否为空。 2. **Servlet 3.0及以上版本的文件上传**:...

    TCPIP上传&下载文件

    在“TCPIP上传&下载文件”的场景中,我们关注的是如何通过TCP/IP协议在客户端和服务器之间进行文件的上传与下载。这个过程涉及到多线程编程,因为服务器需要同时处理多个客户端的并发请求,确保每个请求都能得到及时...

    asp文件上传下载模块(完全能实现)

    - **文件大小限制**:设定上传文件的最大大小,防止大文件占用过多服务器资源。 - **权限控制**:确保只有授权用户能访问上传的文件,例如通过登录系统实现。 4. **模板结构**: - **上传页面**:包含文件选择...

    struts2文件上传与下载

    // 获取上传文件的原始名称 uploadFileName = multiPartRequest.getFile("uploadFile").getFileName(); // 将文件保存到服务器 uploadFile.transferTo(new File("/path/to/save/" + uploadFileName)); // ... ...

    用SpringBoot实现的文件分片上传和下载功能

    在现代Web应用中,大文件的上传和下载是常见的需求,尤其在云存储、文件分享等领域。Spring Boot作为Java后端开发的热门框架,提供了强大的支持来处理这种场景。本项目实现了基于Spring Boot的文件分片上传和下载...

    SpringBoot文件上传下载

    至于压缩包中的"文件上传文件下载.pdf",这可能是一个教程文档,详细阐述了如何在SpringBoot中实现文件上传和下载功能,包括步骤、代码示例和注意事项。而"rest01(4)"可能是源码或示例项目的部分,这部分内容可能...

    IIS6.0 中上传下载文件受到限制的解决方法

    ### IIS6.0 中上传下载文件受到限制的解决方法 在使用IIS6.0进行网站部署时,用户可能会遇到文件上传或下载大小受到限制的问题。这种情况通常会影响到用户的使用体验,尤其是对于需要频繁上传大文件的应用场景。...

    asp中文件上传下载的实现

    ASP不直接支持文件上传,但可以通过读取`Request.BinaryRead`来获取原始POST数据。然后,我们可以使用第三方库,如`Chilkat`或自己编写解析代码。以下是一个简单的使用`Chilkat`的例子: ```vbscript Dim Chilkat ...

    SpringMVC 文件上传下载

    例如,可以使用`MultipartFile`的`isEmpty()`方法检查文件是否为空,`getOriginalFilename()`获取原始文件名,以及`getSize()`获取文件大小,从而进行相应的验证。 另外,安全是另一个重要的方面。防止恶意用户上传...

Global site tag (gtag.js) - Google Analytics