使用ajax,Jquery,Spring Boot,MultipartFile实现文件上传功能

ue4 角色奔跑/冲刺/蹲下 /蹲走 动作切换蓝图 序列:文章分为4部分: 一、准备工作+简单的蓝图连线 二、编写“行走” 混合空间 三、编写“蹲下”混合空间 四、合成2个动画,设置动画蓝图 —————————————— 一、准备工作 下载“动画初学者包”,添加到项目! 主要文件: 打开BP_playerCharacter,组价——添加组件,找到“摄像机”,“机臂” 没有找到就去其他项目复制过来 ———————————— 手写人物的移动,也可以在... 阅读详情

MultipartFile

方法总结
 byte[]getBytes() 
返回文件的内容作为一个字节数组。
 StringgetContentType() 
返回文件的内容类型。
 InputStreamgetInputStream() 
返回InputStream读取文件的内容。
 StringgetName() 
返回参数的名称多部分的形式。
 StringgetOriginalFilename() 
返回原来的文件名在客户机的文件系统。
 longgetSize() 
返回文件的大小,以字节为单位。
 booleanisEmpty() 
返回是否上传文件是空的,也就是说,没有文件 选择多部分形式或所选的文件中没有的内容。
 voidtransferTo(File dest) 
接收到的文件转移到给定的目标文件。
方法的细节

getName

字符串 getName()

返回参数的名称多部分的形式。

 

返回:

参数的名称(没有null或空)


getOriginalFilename

字符串 getOriginalFilename()

返回原来的文件名在客户机的文件系统。

这可能包含路径信息取决于所使用的浏览器, 但它通常不会与任何其他比歌剧。

 

返回:

原来的文件名,或空字符串如果没有文件 多部分形式的选择


getContentType

字符串 getContentType()

返回文件的内容类型。

 

返回:

内容类型,或null如果没有定义 (或多部分没有选择文件的形式)


isEmpty

布尔isEmpty()

返回是否上传文件是空的,也就是说,没有文件 选择多部分形式或所选的文件中没有的内容。

 


getSize

长getSize()

返回文件的大小,以字节为单位。

 

返回:

文件的大小,如果空或0


getBytes

byte[]getBytes()
抛出IOException

返回文件的内容作为一个字节数组。

 

返回:

文件的内容作为字节,如果空或空字节数组

抛出:

IOException在访问错误的情况下(如果临时存储失败)


getInputStream

InputStream getInputStream()
抛出IOException

返回InputStream读取文件的内容。 用户负责关闭流。

 

返回:

文件的内容流,如果空或空流

抛出:

IOException在访问错误的情况下(如果临时存储失败)


transferTo

无效transferTo(文件桌子)
抛出IOException,IllegalStateException

接收到的文件转移到给定的目标文件。

这个可以移动文件的文件系统,复制文件 文件系统,或者内存内容保存到目标文件。 如果目标文件已经存在,它将被删除。

如果文件被移动的文件系统,这个操作不能 再次被调用。 因此,调用这个方法能够仅仅一次 适用于任何存储机制。

 

参数:

dest——目标文件

抛出:

IOException——在阅读或写作的错误

IllegalStateException如果文件已被移动 在文件系统和不可用了另一个转移

 

实例:

需求规格:实现上传文件功能,并将上传的文件内容转换成二进制ByteBuffer的形式,作为服务的入参。

使用技术:html,JS,JQuery(miniUI),Ajax,MultipartFile;SpringBoot框架

html代码:

<div>

         <form>

                  <input id = "file"   type="file"   name = "file"/>

                 <div id = "upload"  class="mini-button"  iconCls = "mini-icon-upload">上传</div>

         </form>

</div>

 

JS代码:

$("#upload").on("click",function(){

     FileUpload();

});

 

function FileUpload(){

     var formData = new FormData();

     formData.append("files",$("#file")[0].files[0]);

     $.ajax({

           type:"POST",

           url:contextPath+"/XXX/XXX",

           data:formData,

           dataType:"json",

           mimeType:"multipart/form-data",

           cache:false,

           processData:false,

           contentType:false,

           success:function(data){

                   if(11 === data.status){

                              alert("导入成功");

                    }else{

                              alert("导入失败");

                    }

          }

     });

}

 

java代码:

@Autowired

DHGHXLDRConfig dhghxldrConfig;

@RequestMapping("/getFileToByte")

@ResponseBody

public Object getFileToByte(@RequestParam(value="files",required=false) MultipartFile multipartFile,HttpServletRequest  request)

{

       String realpath = "";

       String name = "";

       if(multipartFile  !=  null){

              long size = multipartFile.getSize();

             if(size > 100*1024){

                     JsonResult.errorException("");

             }

             name = multipartFile.getOriginalFilename();

             String subffix = name.substring(name.lastIndexOf(".")+1,name.length());

             String filePath = dhghxldrConfig.getXlfilePath();

             File file = new File(filePath,name);

             byte[] by = new byte[(int)file.length()];

            try{

                      FileInputStream inputStream = new FileInputStream(file);

                      ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

                      byte[] bb = new byte[2048];

                      int ch;

                      ch = inputStream.read(bb);

                      while(ch != -1){

                             bytestream.write(bb,0,ch);

                             ch = inputStream.read(bb);

                      }

                      by = bytestream.toByteArray();

                      buffer = ByteBuffer.wrap(by);

                      //根据业务调接口,传参数

                }catch(FileNotFoundException e){

                       e.printStackTrace();

                }catch(IOException e){

                       e.printStackTrace();

                }catch(TException e){

                       e.printStackTrace();

                }

                return JsonResult.ok("");

       }

       return JsonResult.errorExcption("");

}

 

JsonResult代码:

public class JsonResult {

private static final int STATUS_OK = 11;

private static final int STATUS_EXCEPTION = 22;

private static final int STATUS_OTHER = 33;

 

private int status;

private String tips;

private Object content;

 

private JsonResult(int status,String tips,Object content){

this.status = status;

this.tips = tips;

this.content = content;

}

 

public int getStatus() {

return status;

}

 

public void setStatus(int status) {

this.status = status;

}

 

public String getTips() {

return tips;

}

 

public void setTips(String tips) {

this.tips = tips;

}

 

public Object getContent() {

return content;

}

 

public void setContent(Object content) {

this.content = content;

}

 

public static int getStatusOk() {

return STATUS_OK;

}

 

public static int getStatusException() {

return STATUS_EXCEPTION;

}

 

public static int getStatusOther() {

return STATUS_OTHER;

}

 

public static JsonResult errorExceptoin(String errMessage){

return new JsonResult(STATUS_EXCEPTION,errMessage,null);

}

 

public static JsonResult ok(Object content){ return new JsonResult(STATUS_OK,"SUCCESS",content);}

 

public static JsonResult other(String otherMessage){return new JsonResult(STATUS_OTHER,otherMessage,null);}

}

 

DHGHXLDRConfig代码:

@Configuration

public class DHGHXLDRConfig{

     @Value("${dhgh.xlfile}")

     private String getXlfilePath(){

         return xlfilePath;

    }

    public String getXlfilePath(){

        return xlfilePath;

   }

 

   public void setXlfilePath(String xlfilePath){

        this.xlfilePath = xlfilePath;

  }

}

 

application.yml需要添加内容:(不在yml里添加上传大小,会使用框架默认值,可能会一起报错,文件过大:)

 

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException

 

Spring:

   servlet:

     multipart:

         max-file-size:100Mb

         max-request-size:100Mb

dddd:

   xlfile:D:/XXX/XXX/XXX

参考文档:https://www.cnblogs.com/chenhonggao/p/8994598.html

 

学习博客:https://blog.youkuaiyun.com/zhaoxiang10052111/article/details/79899284

 

LM Studio Bionic:本地AI智能体从部署到实战完整指南 AI智能体作为能够自主规划、执行多步任务的人工智能系统,其核心原理在于结合大语言模型的推理能力与工具调用机制。通过状态保持和任务分解算法,智能体实现了从单次问答到持续协作的技术跃迁。在工程实践中,这种架构显著降低了复杂任务自动化的门槛,特别适用于数据敏感场景和定制化需求。以Tesla V100等专业硬件为例,本地部署能充分发挥其大显存优势,支持更高精度的模型量化格式。在实际应用层面,智能体可无缝集成到代码审查、文档生成等开发工作流中,而LM Studio Bionic通过统一界面整合了模型服务、任务规划器等 阅读详情

相关推荐

手把手教你用ET-BERT预训练模型搞定加密流量分类(附完整代码)

本文详细介绍了如何使用ET-BERT预训练模型实现加密流量分类,包括环境配置、数据预处理、模型微调及优化策略。通过实战代码示例,帮助开发者快速掌握这一技术,提升网络安全领域的加密流量分析能力。

weixin_29166013的博客 493

SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传

本文是一篇由前端发起JQuery+Ajax异步请求,传输表单和文件数据,后端控制器获取数据的文章。复制粘贴,亲测可用!

都随它大小便吧 2288

Dify如何实现自主学习

摘要:Dify通过构建感知-决策-执行-反馈的闭环实现"自主学习",本质是打造能自动获取信息、更新知识库并调整策略的Agent工作流。核心包括:1)建立知识库作为记忆体;2)搭建感知与执行工具获取实时信息;3)通过工作流编排决策"大脑",包含LLM决策节点、行动执行节点和反馈反思节点。典型应用如根据用户反馈优化回答风格,通过存储反思日志到知识库实现持续优化。这种机制使智能体能基于新数据和经验不断自我改进。

专注于技术研发行业技术主要有AI人工智能视觉识别、物联网技术、电商平台、app原生技术、微信小程序、鸿蒙语言开发、办公企业oa、ERP等,致力于做东半球最优秀的程序员 725

SpringBoot文件上传示例-ajax和REST

  SpringBoot文件上传示例-ajax和REST 通过mkyong  转载自英文技术网站Mkyong.com 本文向您展示了如何使用Ajax请求在SpringBootWeb应用程序(REST结构)中上载文件。 本文使用的工具: Spring Boot 1.4.3.RELEASE Spring 4.3.5.RELEASE Thymeleaf jQuery (webjars) ...

开发猫 3958

TCP/IP协议栈之LwIP(三)---网际寻址与路由(IPv4 + ARP + IPv6)

一、网际寻址原理 当网络设备地址总数并不是很多的情况下,有了唯一地址(比如MAC地址)就可以定位相互通信的主体。然而,当地址总数越来越多时,如何高效地从中找出通信的目标地址将成为一个重要的问题。为此人们发现地址除了具有唯一性还需要具有层次性。MAC地址虽然具有唯一性,但没有层次性,也即当网络设备增加到一定程度,需要将网络分成多个数据链路时,MAC地址无法跨链路寻址,是真正负责最终通信的地址。要实现跨局域网的网际寻址,就要靠具有层次性的网络IP地址实现了。

流云 6818

C#实现不占用串口的串口监听与侦听技术:高效监控串口数据的最佳实践

本文详细介绍了如何实现不占用串口的串口监听与侦听技术,解决了传统串口监听可能带来的串口占用问题。通过使用虚拟串口、外部监听工具或第三方库,我们可以高效地实现串口数据的捕获与处理,适用于各种工业控制、物联网和嵌入式开发的应用场景。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1666

SpringBoot Ajax文件上传,文件+参数混合上传,参数封装JavaBean,多种方法处理上传参数和文件

开发中文件上传是不可避免的功能,但有时候同时处理上传文件和参数如果不注意细节就会出现很多问题,偶尔看到有位同学总结的,使用的是SpringBoot+Vue,那我就在这位同学的基础上再总结一下使用Ajax混合上传文件和参数的方法吧。

来啦,进来吧!! 2327

从波形到代码:手把手调试GaN图腾柱PFC的过零点切换与软启动策略

本文详细解析了GaN图腾柱无桥Boost PFC电路在过零点切换与软启动策略中的调试方法。通过波形分析、代码实现和寄存器配置,提供了解决误开通、震荡波形等问题的实用方案,帮助工程师优化电源设计效率与可靠性。

weixin_30831529的博客 421

使用ajax+Springboot实现文件上传

后端部分: @PostMapping("/fileUpload") public Map<String,Object> getFile(@RequestPart("file") MultipartFile file) throws IOException { if(!file.isEmpty()) { // 获取文件名 System.out.println(file.getName());

weixin_44337267的博客 2862

【UE 反射】反射的原理是什么?如何使用机制?

静态类型检查确保了类型的早期一致性和高效的代码执行,但减少了灵活性。动态类型检查提供了更大的灵活性,但增加了运行时的开销和潜在的错误。反射作为一种动态特性,无论是在静态类型语言还是动态类型语言中,都提供了强大的运行时类型操作能力,但也伴随着性能和安全性方面的权衡。通过理解这些联系,开发者可以在不同的编程语言和应用场景中选择适合的类型检查方式和反射机制,以实现所需的动态行为和灵活性,同时保证性能和安全性。

hhw_hhw的博客 6031

SQL基础:HQL之常用的行列转换应用总结

行列转换是数据开发者的基本技能,也是面试重点,在数据开发中处处可见,本文对常见的几种情况进行了总结,包括了多行转多列,多行转单列,多列转多行,单列转多行的几种情况,并给出了解决思路和方法,读者可根据本文给出的思路灵活应对业务中遇到的问题。

石榴姐yyds 1799

Ajax请求做文件上传,后端使用MultipartFile接收

最近在做一个后台的发布监控系统项目,主要负责监控项目个接口以及对项目做一些发布,回滚等操作,其中在写发布功能时需要做文件上传,把对应的项目jar包上传到服务器然后发布,使用的是ajax请求做文件上传,其中遇到的一些问题,特此记录! HTML页面点击发布按钮会弹出文件上传的模态框。method必须为POST,文件上传必须加上enctype="multipart/form-data,且input框的type必须为file,多选上传可以加入multiple="multiple"属性。 <div class=

xxxxu5811的博客 4040

基于FPGA的万兆以太网学习(1)

万兆(10G) 以太网测速视频:SFP+屏蔽笼可以插入千兆或万兆光模块。SFP+信号定义与 SFP 一致。

baidu_34971492的博客 2249

使用Spring boot + jQuery上传文件(kotlin)

文件上传也是常见的功能,趁着周末,用Spring boot来实现一遍。 前端部分 前端使用jQuery,这部分并不复杂,jQuery可以读取表单内的文件,这里可以通过formdata对象来组装键值对,formdata这种方式发送表单数据更为灵活。你可以使用它来组织任意的内容,比如使用 formData.append("test1","hello world"); 在kotlin后端

bifan546的博客 1273

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

前端html+ajax+js+后端实现上传文件,无需任何插件

需求: 在前端页面选择文件上传到服务器的指定位置 前端代码 <form id="uploadForm" method="post" enctype="multipart/form-data"> <label >上传电子书</label> <input type="file" name="file" > <button id="upload" type="button" name="button" >上传</bu

weixin_47142014的博客 869

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java 上传文件时展示进度

1.html代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> #progress:after { ...

weixin_42123429的博客 875

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MVC ajax上传文件 Required request part ‘file’ is not present

首先POM需要添加依赖 然后在mvc里配置 前端页面 后端处理

wobuhui123的博客 236

Spring Boot + JQuery Ajax 实现文件上传功能

(一)需求 在 Spring Boot 项目中实现文件下载功能 后,项目需要进一步实现 Excel 文件上传功能,已供后端代码读取 Excel 中单元格的数据。本文的代码在下载功能的基础之上继续扩展。 (二)代码 2.1 后端代码 控制层 @PostMapping("upload") public String uploadFile(MultipartFile file) { String...

Jake Weng 3394

5分钟上手Spring Boot文件上传:基于Ajax的完整实现示例(Spring Boot Samples教程)

Spring Boot作为当下最流行的Java开发框架,提供了极其便捷的文件上传解决方案。本文将带你通过Spring Boot Samples中的**spring-boot-file-upload-with-ajax**模块,快速掌握如何在5分钟内搭建一个支持Ajax异步上传的文件上传功能,让你轻松应对各类Web应用中的文件上传需求。 ### ✅ 准备工作:环境与项目搭建 #### 核心技术栈

gitblog_00050的博客 1065

spring boot ajax表单提交,基于Spring Boot利用 ajax实现上传图片功能

效果如下:1.启动类中加入SpringBoot重写addResourceHandlers映射文件路径@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/imctemp-rainy/**").addResourceLocations("fil...

weixin_39632891的博客 2815

Spring Boot中实现文件上传

Spring Boot中实现文件上传前言创建Controller创建前端页面(表单提交)ajax方式提交 前言 在Spring Boot中我们要实现文件上传不需要引入其他依赖,已经给我们提供了StandardServletMultipartResolver。创建项目是选择web依赖。 创建Controller package com.yjn.fileupload; import org.spri...

JustinNeil的博客 575

springboot和jquery.form.js实现监听文件上传进度

说明 文件上传作为程序开发最常用的功能之一,上传进度展示也是必须的。但是有时候进度并不准,进度100%了实际上后台尚未接收完毕,本篇就介绍如何利用jquery的form插件来实时反馈文件上传进度。 实现效果 注意:最后100%停了一下才出现返回结果,因为服务器端在将二进制流写入到磁盘中耗费了点时间。 关于jquery.form 1.这个框架集合form提交、验证、上传的功能。 2.这个框架必须和jquery完整版结合,否则使用min则无效。 原理:利用js进行对form进行组装成ajax的url和data

老徐的博客只有干货 1835

string boot ajax文件上传

文件上传 我们的文件上传需要一个映射来方便多人同时访问这个网页,所以我们需要在启动类里面加上映射 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/imctemp-rainy/**").addResourceLocati...

Casset。 197

SpringBoot文件上传(Ajax)

1.准备前端页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>fileup</title> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> </head> <body>

qq_36336898的博客 590

Spring Boot高效实现文件上传下载:核心原理与生产级安全实践

在Web应用开发中,文件上传与下载是业务系统的高频能力,但中文文件名乱码、大文件超时、临时文件被清理等问题频繁困扰开发者。理解MultipartFile的底层机制是解决问题的起点,Spring Boot基于Servlet 3.0封装了简洁的文件解析API,配合合理的内存/磁盘阈值配置,可应对不同规模的上传场景。同时,通过抽象存储接口,本地磁盘、MinIO与云OSS之间可平滑迁移。本文从文件处理原理出发,详解存储分层设计、安全校验策略(如扩展名白名单与魔术数字检测),并剖析上传下载接口的实操细节与生产环境陷阱

weixin_33912638的博客 364

Spring Boot文件上传示例– Ajax和REST

本文向您展示了如何使用Ajax请求在Spring Boot Web应用程序(REST结构)中上传文件。 本文使用的工具: Spring Boot 1.4.3。发布 Spring4.3.5。发布 胸腺 jQuery(Webjars) 马文 嵌入式Tomcat 8.5.6 Google Chrome浏览器(网络检查) 1.项目结构 标准的Maven项目结构...

一名可爱的技术搬运工 193
上一篇: Ajax方式上传文件
下一篇: MiniUI中datagrid使用的不兼容bug
coding_1994
博客等级 码龄9年 636粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值