• 文件上传和下载


    1.文件的上传和下载

      HTTP请求及HTTP响应中都包含正文部分。HTTP响应的正文部分最常见的是HTML文档,此外还可以是其他任意格式的数据,如图片和声音文件中的数据。同样,HTTP请求的正文部分不仅可以是字符串格式的请求参数,也可以是其他任意格式的数据。

      Web

    文件下载

    文件下载是指把服务器端的文件发送到客户端,Servlet能够向客户端发送任意格式的文件数据。

    文件上传

    文件上传指把客户端文件发送到服务器端。此时,客户端发送的HTTP请求正文采用 multipart/form-data数据类型,它表示复杂的包含多个子部分的复合表单。

    文件上传原理分析:

    HTML核心代码

    <form method="post" enctype="MULTIPART/FORM-DATA" action=" UploadServlet">

        Choose File:  <input type="file" name="filedata" size="30"/>

        <input type="submit" name="submit" value="upload">

    </form>

    运行显示如下图

    此时点击浏览,选择Data.txt文件作为上传文件。

    Data.txt中包含如下内容

    Test  Dataupload01

    Test  Dataupload02

    Test  Dataupload03

    Test  Dataupload04

    此时点击upload按钮,提交给Web服务器。此时HTTP请求信息


    分析上传文件的HTTP请求

    HTTP请求的正文部分为复合类型,包含两个子部分:文件部分和提交按钮部分。提交请求时,浏览器随机产生了一个字符串形式的边界(boundary)作为HTTP请求头的一部分:

    HTTP请求的正文部分的各个子部分之间用边界进行分割。每个子部分由头和正文部分组成,头和正文部分之间用空行分割。如下图

    根据以前所学,如果要将Data.txt文件中数据上传到服务器,需要对HTTP请求进行解析,读取其中的边界值,再根据边界值定位到文件部分,进而定位到文件部分的正文部分,再把正文部分的数据保存到本地文件系统中。

    此程序可向服务器端上传任意格式的文件数据。一般处理文件部分的正文部分时,会按照字节流而不是字符流处理写到本地文件整。

    思路:解析该HTTP请求,将上传的信息保存到服务器。

    根据以上分析,不管HTTP请求正文为何种数据类型,Servlet容器都会把HTTP请求包装成一个HttpServletRequest对象。请求正文为”multipart/form-data”数据类型时,Servlet直接从HttpServletRequest对象中解析出复合表单的每个子部分,但工作量依然非常复杂。

    效果展示       

    批量上传文件和文件夹 

    说明: http://bbsres2.ncmem.com/731fda07.png 

    文件和目录下载

     说明: http://bbsres2.ncmem.com/1176943f.png   


    Mac控件安装教程与演示说明:

    http://t.cn/AijgiFgW

    http://t.cn/Aijg6z08

     

    Linux控件安装教程与演示说明:

    http://t.cn/Aijg6Lv3

    http://t.cn/Aijg64k6

     

    控件包下载: 

    MacOShttp://t.cn/Aijg65dZ

    Linuxhttp://t.cn/Aijg6fRV

    cab(x86)http://t.cn/Ai9pmG8S 

    cab(x64)http://t.cn/Ai9pm04B 

    xpihttp://t.cn/Ai9pubUc 

    crxhttp://t.cn/Ai9pmrcy 

    exehttp://t.cn/Ai9puobe   

     

    示例下载: 

    asp.nethttp://t.cn/Ai9pue4A   

     

    在线教程: 

    asp.net-文件管理器教程:http://t.cn/AiNhmilv

     

    个人博客:http://t.cn/AiY7heL0

     

    www.webuploader.net

     

     

  • 相关阅读:
    c#多线程
    把.NET程序部署到没有安装.NET Framwork的机器上
    Java字符编码转换过程说明
    Window 消息大全使用详解
    Regsvr32
    VC++的应用程序框架中各类之间的访问方法
    java接收中文输入并正常显示
    Visual C#中的数据绑定
    截取系统 API 调用(转)
    几个操作文件的API函数
  • 原文地址:https://www.cnblogs.com/songsu/p/11302624.html
Copyright © 2020-2023  润新知