zoukankan      html  css  js  c++  java
  • JAVA大文件(100G以上)的上传下载实现技术

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。

    首先我们需要了解的是上传文件三要素:

    1.表单提交方式:post (get方式提交有大小限制,post没有)

    2.表单的enctype属性:必须设置为multipart/form-data.

    3.表单必须有文件上传项:file,且文件项需要给定name值

    上传文件夹需要增加一个属性webkitdirectory,像这样:

    <input id="fileFolder" name="fileFolder" type="file"  webkitdirectory>

    js中可以判断文件夹中文件数量及文件夹大小是否符合要求,不符合要求不能向后台提交:

    前台HTML模板

    选择文件,选择文件夹,粘贴文件和文件夹的逻辑

     

    后台在接收文件夹时不同之处在需要用MultipartHttpServletRequest

    server端的包和类

     

    f_post.jsp页面的处理逻辑

     

    生成文件名称的逻辑

     

    以下是service层做的处理:

    整体模块划分如下:

    其中数据类实体逻辑处理如下

    后台数据库中的逻辑基本上都用到了上面的实体类

    文件数据表操作类如下

    实现后的整体效果如下

    文件夹上传完后的效果

    服务器保存的文件夹数据,而且层级结构与本地客户端是一致的。这在OA系统中,或者网盘系统中使用时是非常有用的

    后端代码逻辑大部分是相同的,目前能够支持MySQL,Oracle,SQL。在使用前需要配置一下数据库,可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/12/java-http%E5%A4%A7%E6%96%87%E4%BB%B6%E6%96%AD%E7%82%B9%E7%BB%AD%E4%BC%A0%E4%B8%8A%E4%BC%A0/

    欢迎入群一起讨论:374992201

  • 相关阅读:
    10A:子串计算
    09I:鸡蛋的硬度
    09H:数字组合
    09G:登山
    09F:股票买卖
    09E-计算字符串距离
    09D-最大上升子序列和
    09C-全排列
    02C-垃圾炸弹
    【c#基础】vs2019设置高级选项
  • 原文地址:https://www.cnblogs.com/songsu/p/13634204.html
Copyright © 2011-2022 走看看