html大文件传输功能

javaweb上传文件

上传文件的jsp中的部分

上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求

  1. 通过form表单向后端发送请求

改进后的代码不需要form标签,直接由控件来实现。开发人员只需要关注业务逻辑即可。JS中已经帮我们封闭好了

通过监控工具可以看到控件提交的数据,非常的清晰,调试也非常的简单。

  1. 通过ajax向后端发送请求

$.ajax({

url : “${pageContext.request.contextPath}/UploadServlet”,

type : “POST”,

data : $( ‘#postForm’).serialize(),

success : function(data) {

$( ‘#serverResponse’).html(data);

error : function(data) {

$( ‘#serverResponse’).html(data.status + ” : ” + data.statusText + ” : ” + data.responseText);

});

ajax分为两部分,一部分是初始化,文件在上传前通过AJAX请求通知服务端进行初始化操作

在文件上传完后向服务器发送通知

这里需要处理一个MD5秒传的逻辑,当服务器存在相同文件时,不需要用户再上传,而是直接通知用户秒传

这里可以看到秒传的逻辑是非常 简单的,并不是特别的复杂。

var form = new FormData();

form.append(“username”,”zxj”);

form.append(“avatar”,file);

//var form = new FormData($(“#postForm”)[0]);

$.ajax({

url:”${pageContext.request.contextPath}/UploadServlet”,

type:”post”,

data:form,

processData:false,

contentType:false,

success:function(data){

console.log(data);

});

java 部分

文件初始化的逻辑

接收文件块数据,在这个逻辑中我们接收文件块数据。控件对数据进行了优化,可以方便调试。如果用监控工具可以看到控件提交的数据。

  1. 上面的java部分的代码可以直接使用,只需要将上传的图片路径及收集数据并将数据写入到数据库即可

  2. 上面上传文件使用到了字节流,其实还可以使用别的流,这个需要读者自己在下面完善测试

  3. BeanUtils是一个工具 便于将实体对应的属性赋给实体

  4. 上传文件不能使用 request.getParameter(“”)获取参数了,而是直接将request解析,通过判断每一项是文件还是非文件,然后进行相应的操作(文件的话就是用流来读取,非文件的话,暂时保存到一个map中。)

欢迎入群一起讨论:374992201

Original: https://www.cnblogs.com/songsu/p/14919814.html
Author: Xproer-松鼠
Title: html大文件传输功能

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/546080/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • TCP三次握手四次挥手

    最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,…

    技术杂谈 2023年7月24日
    087
  • 为什么每天都在学习,生活还是没有任何改善?

    作者:刘教练来源:刘教练(ID:liucoaching)在这个浮躁的时代,坚守自己的选择,专注地投入其中,你才会走得更远。■■■我有一个大学同学,只看他的朋友圈,你一定不知道他是做…

    技术杂谈 2023年6月1日
    088
  • R12.2.7 开启预置用户账号

    [root@apps scripts]# cd /u01/install/APPS/scripts [root@apps scripts]# ll total 244 -rwxr-…

    技术杂谈 2023年6月1日
    084
  • 轻量迅捷时代,Vite 与Webpack 谁赢谁输

    你知道Vite和Webpack吗?也许有不少”程序猿”对它们十分熟悉。 Webpack Webpack是一个JavaScript应用程序的静态模块打包工具,…

    技术杂谈 2023年5月31日
    0101
  • 如何查看crontab的日志记录

    linux看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察(不能用cat查看) unix在 /var/spool/cron/tmp…

    技术杂谈 2023年6月1日
    089
  • 自己动手,打造轻量级VSCode/C#环境代替LinqPad

    .Net 的项目都挺重的,一直想找一个轻量级的 CSharp 环境,能像Python那样,选一个文件就能跑的。之前用的是 LinqPad,但它的缺点也很明显: (1) 不付费,自动…

    技术杂谈 2023年6月1日
    080
  • 监控平台SkyWalking9入门实践

    简便快速的完成对分布式系统的监控; 一、业务背景 微服务作为当前系统架构的主流选型,虽然可以应对复杂的业务场景,但是随着业务扩展,微服务架构本身的复杂度也会膨胀,对于一些核心的业务…

    技术杂谈 2023年7月23日
    081
  • ThreadLocal解决了什么问题

    小明所在的项目组(迭代组:一直在迭代的路上),经常会在已有接口的基础上开发一些小功能,并且前提是在保证现有用户的不受影响基础上迭代。功能迭代,在代码层面小明有1w种实现方法(吹牛的…

    技术杂谈 2023年7月25日
    065
  • 定时器时间轮算法

    Linux定时器分为低精度定时器和高精度定时器两种类型,内核对其均有实现。本文讨论的是我们在应用程序开发中比较常见的低精度定时器。作为常用的基础组件,定时器常用的几种实现方法包括:…

    技术杂谈 2023年5月31日
    098
  • SOCKS:防火墙安全会话转换协议

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/panxuejun/p/10584986.htmlAut…

    技术杂谈 2023年5月31日
    099
  • Collection和Collections有什么区别?

    1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collec…

    技术杂谈 2023年5月30日
    090
  • lambda表达式捕获变量的生命周期

    在C++11中,lambda表达式有两种变量捕获方式,分别为值捕获和引用捕获。这两种捕获的形式如下: #include <iostream> int main(int …

    技术杂谈 2023年5月30日
    094
  • Hadoop集群模式安装笔记

    前言 Hadoop集群= HDFS集群+ YARN集群特点:两个集群逻辑上分离,通常物理上在一起;并且都是标准的主从架构集群 Hadoop安装 &#x65B9;&#…

    技术杂谈 2023年6月21日
    090
  • 目标和现状之间都是问题

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    093
  • 【标准正态分布】

    1.标准正态分布 2.Excle中的正态分布 3.Excel标准正态分布的反函数 1.标准正态分布 根据分布值得到累计密度函数,例如分布值为1,则累计密度为:0.5 + 0.841…

    技术杂谈 2023年5月31日
    090
  • netsh windows7 自带端口映射(转发)使用教程

    Original: https://www.cnblogs.com/zjoch/p/11129949.htmlAuthor: 遥望星空Title: netsh windows7 自…

    技术杂谈 2023年5月30日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球