zoukankan      html  css  js  c++  java
  • java web关于文件上传下载的总结

    文件上传使用<form method="POST"   enctype="multipart/form-data"> , 而不是默认的application/x-www-form-urlencoded (JQuery默认也是这个)

    Servlet首先从Request.inputStream直接读取到原始的文件信息,  spring mvc将inputStream中boundary信息解析成临时文件并映射给MultiPart对象, 解析过程就是各个boundary一行一行的读取并保存到临时文件。

    spring mvc Controller业务处理的过程是使用MultiPart对象的输入流和输出流,具体对原始字节流的解析由框架封装了, 然后才是保存到数据库或者其他文件服务器

     

    上传一个20M的文件就占用20M内存吗?

    不是的,应该说上传20M的文件会占用20M的硬盘空间,从inputStream中读取字节流并放入到byte[2048]中,然后就把这2048 byte内容输出到硬盘临时文件了,后面while循环这个过程。 基本上当前上传请求占用的内存也就是上面用来缓存的字节数组大小, 和原始文件的大小无关。

    大文件的上传

    文件上传多大 是基于性能安全问题 考虑的,占用连接数, 不是原理上的限制。http上传并没有限制大文件 

    多段上传

    如何与netty结合

    如何使用nio channel, directBuffer

    断点续传 http range

    参考:上传示例 https://www.cnblogs.com/ityouknow/p/8298344.html

    Http post contentType与文件编码

  • 相关阅读:
    MariaDB 正则
    MariaDB 条件语句WHERE
    MariaDB SHOW,ANALYZE,CHECK
    eclipse的debug使用(转载)
    linux中vi编辑器(转载)
    centos6.4中文输入法安装和切换(转载)
    windows快捷键大全(转载)
    windows命令大全(转载)
    windows下route命令详解(转载)
    public,protected,private,static,final的区别(转载)
  • 原文地址:https://www.cnblogs.com/yszzu/p/9563838.html
Copyright © 2011-2022 走看看