文件上传

java文件上传总结 前言 文件上传是各类应用中经常碰到的需求,不管是上传图片、文件、音频、视频等,或者其他类型的文件,都是后端需要解决的,采用什么样的方式进行上传,或者对上传后的文件如何进行存储,甚至如何更加高效的上传文件等问题,都是在实际开发中需要解决的,本文将对常用的文件上传使用进行一下简单的小结 以springboot为例,下面我们就开始撸码吧,开工前我们还是做一下简单的准备吧,本文的演示demo框架为springboot2.2.1版本,只需简单引入一个下面的依赖即可,其他需要用到的,我们增量添加即可 <de 阅读详情
jsp文件上传大多采用采用开源项目来简化处理,这里列出常用的两个jar包的实现,并进行比较,说明他们的优缺点和应该注意的问题。

Commons FileUpload,可以在http://jakarta.apache.org/commons/fileupload/下载,这个包需要Commons IO的支持,可以在http://jakarta.apache.org/commons/io/下载

com.oreilly.servlet,可以在http://www.servlets.com/cos/下载 
Commons FileUpload提供三种文件上传处理方式,DiskFileUpload、ServletFileUpload和PortletFileUpload三种方式,其中DiskFileUpload已经在javadoc下已经被标记为过期的方法,建议用ServletFileUpload代替,而PortletFileUpload需要配合portlet-api来使用,所以这里我们只介绍ServletFileUpload,并且这个也是最常用的。

com.oreilly.servlet也提供了三种文件上传的处理方式,MultipartWrapper、MultipartRequest和MultipartParser三种方式,其中MultipartWrapper和MultipartRequest的用法基本相同,并且没有MultipartRequest提供的操作多,所以这里介绍MultipartRequest,MultipartParser和前两者有些不同,可以用来处理某些特殊情况,例如表单中有两个同名的文件上传选择框。

我们暂时称三面三种文件上传方式分别为:ServletFileUpload方式(MultipartTestServlet)、MultipartRequest方式(MultipartTestServlet2)、MultipartParser方式(MultipartTestServlet3)


问题1、中文问题:
三种凡是都可以通过自己的方法来设置encoding为gbk开处理和解决中文问题,包括初始化的时候传入gbk作为参数,或是是初始化后通过setEncoding的方式来实现。
另外ServletFileUpload方式也可以通过request.setCharacterEncoding("gbk");的方式来实现,而其它两种方式不支持这种方式。


问题2、文件大小限制
ServletFileUpload方式可以设置文件大小限制,也可以不用设置,例子中的upload.setSizeMax(2000000)就可以注释掉。如果设置upload.setSizeMax(-1),表明不限制上传的大小。文档中没有指明默认的限制的多少,我在不设置的情况下上传了一个9M的东西,可以上传,估计默认是不限制大小的。
而MultipartRequest方式和MultipartParser方式是必须设置文件的上传文件的大小限制的,如果不设置,默认是1M的大小限制。


问题3、文件上传发生错误
如果文件上传过程中发生任何错误,或者是文件的大小超出了范围,系统都将抛出错误。
ServletFileUpload方式在upload.parseRequest(request)时抛出错误
MultipartRequest方式在new MultipartRequest(。。。)时抛出错误
MultipartParser方式在new MultipartParser(。。。)时抛出错误


问题4、上传同名文件时,他们保存到临时目录是的冲突问题
ServletFileUpload方式,不会有冲突,系统会把上传得文件按照一定的规则重新命名,保证不会冲突
MultipartParser方式,会产生冲突,系统会把文件按照上传时的文件名,保存到临时目录下,如果两个用会同时上传文件名相同的文件,那么就可能会产生冲突,一方把另一方的临时文件给替换了。
MultipartRequest方式,在初始化时如果提供了一个名称转换策略,就不会有冲突,如果不提桶,就会有冲突。在上面的例子中我们提供了一个new DefaultFileRenamePolicy()保证了文件名不会有冲突发生。


问题5:表单中有两个同名的文件上传选择框,就像我们例子中的myfile一样,每个表单中有两个name=“myfile”的上传框
ServletFileUpload方式,可以处理,可以分别得到他们各自的文件,
MultipartRequest方式,不可以处理,会发生冲突,会有一个上传框的文件覆盖了另外一个。
MultipartParser方式,可以处理,可以分别得到他们各自的文件,

参考:
1、http://www.servlets.com/cos/#classes
2、http://jakarta.apache.org/commons/fileupload/apidocs/index.html
3、http://jakarta.apache.org/commons/fileupload/using.html
4、http://www.onjava.com/pub/a/onjava/2003/06/25/commons.html?page=3


com.oreilly.servlet 立即下载

相关推荐

Ollama模型路径迁移实战:Windows/Mac/Linux三系统保姆级教程(附常见问题排查)

本文提供了一份详细的Ollama模型路径迁移教程,涵盖Windows、macOS和Linux三大操作系统。针对默认安装路径占用系统盘空间的问题,文章指导用户如何安全移动模型文件、配置环境变量、重启服务,并附有迁移后的验证步骤与常见问题排查方法,帮助用户高效管理本地AI模型存储。

gray5的博客 541

对象存储COS实现

腾讯云对象存储COS,通过java实现api调用,最后附上完整代码

munangs的博客 1655

Fastwhisper + Pyannote 实现 ASR + 说话者识别

最近在研究ASR相关的业务,也是调研了不少模型,踩了不少坑,ASR这块,目前中文普通话效果最好的应该是阿里的modelscope上的中文模型了,英文的话,还是非whisper莫属了,而且whisper很变态,粤语效果也还不错,因此,如果实际业务中需要涉及到不同的语言,还是更推荐whisper多一点faster-whisper是使用CTranslate2对OpenAI的Whisper模型的重新实现,CTranslate2是一个用于Transformer模型的快速推理引擎。

qq_44193969的博客 1万+

使用com.oreilly.servlet上传文件

下载cos.jarhttp://www.servlets.com/cos/index.html try {            //上传文件最大为10M            MultipartRequest multi =                    new MultipartRequest(request, "D:/flex_upload", 10*1024*1024,     ...

zh_dream_success的专栏 493

红外回充方案之红外接收和发射/附源码(1)

本文介绍了基于NEC协议的红外回充方案实现,重点讲解了红外收发原理和GD32F330单片机的接收端实现。文章首先说明采用38kHz载波和一体化红外接收管的设计优势,能有效抗环境光干扰。接着详细解析NEC协议格式,包括9ms起始信号、地址码、命令码及其反码校验机制,并给出逻辑1和0的调制方式。在接收端实现上,展示了GD32F330定时器输入捕获配置代码,通过双边沿触发测量脉冲宽度进行解码。文章还提供了状态机设计思路和数据结构,为低成本机器人红外回充方案提供了完整的技术实现方案。

m0_59406757的博客 1237

保姆级教程如何进行本地局域网布署openclaw小龙虾

全网唯一一篇一步步实战教程,图文并茂方式的方式教你如何本地部署安装小龙虾openclaw

zzw17wei的专栏 1467

jsp文件上传的处理

jsp文件上传大多采用采用开源项目来简化处理,这里列出常用的两个jar包的实现,并进行比较,说明他们的优缺点和应该注意的问题。  Commons FileUpload,可以在http://jakarta.apache.org/commons/fileupload/下载,这个包需要Commons IO的支持,可以在http://jakarta.apache.org/commons/io

锻炼肌肉,防止挨揍 4124

基于Multisim的三相桥式全控整流电路建模、仿真与综合分析

本文基于Multisim 14.2平台,系统研究了三相桥式全控整流电路的建模与仿真方法。首先阐述了电路拓扑结构和工作原理,建立了数学模型。重点介绍了在Multisim中搭建主电路、设计六脉冲触发系统(含两种实现方案)的关键步骤,以及参数设置技巧。通过仿真分析了不同负载(阻性、阻感性)和触发角(0°-90°)下的输出特性,包括电压波形、电流谐波等性能指标。研究为电力电子教学提供了直观的仿真范例,并探讨了模型改进方向与实际工程应用价值。

huanghm88的专栏 353

前端demo: COS上传图片、视频、文件的一些点

前端demo: COS上传图片、视频、文件的一些点

weixin_49015558的博客 1131

Megatron-LM中的TP、PP、DP、SP、CP并行

SP主要优化的是激活内存,它沿序列维度切分部分激活,适用于较短序列并行。CP主要解决的是长序列的显存问题,它沿序列维度切分所有激活和输入,并且对注意力机制也进行并行处理。二者可以组合使用,特别是当 TP > 1 并且需要处理长序列时,通过启用 SP 和 CP 可以最大化地优化内存使用和加速计算。

u013250861的博客 861

Linkage Mapper 工具参数详解——Building Network and Map Linkages

此文档用于解析使用LinkageMapper各输入输出参数详情以及可能的影响,并介绍了如何解释模型输出结果和输出参数,适合刚入手的人。篇幅很长很啰嗦,是因为每个参数都解释的万分细致。

sumuses的博客 6111

java——文件上传

文件上传的简介:文件上传是指将本地计算机中的文件传输到网络上的服务器或另一台计算机上的过程。在 Web 开发中,文件上传通常指的是将用户通过 Web 页面提交的文件(如图像、文档、音频、视频等)传输到服务器端的操作。总结:服务端要想接收到从前端页面上传的文件,需要使用到一个api:MultipartFile,通过该api来接收上传的文件。而上传上来的文件是一个。基础实现:在上面的文件上传——入门的基础上,修改一下controller就行。最快的解决办法就是,修改本地存储的路径,输入一个存在的目录的路径。

学习笔记 1万+

12. Web安全—渗透测试用例—敏感信息泄漏

12. Web安全—渗透测试用例—敏感信息泄漏

weixin_43567873的博客 412

springboot文件上传

/</</</</其中后端处理文件上传的请求地址为/uploadFile,请求方法为POST。在文件上传时需要设置form表单的enctype属性为“multipart/form-data”。

Starbright.的博客 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

UniApp文件上传

UniApp文件上传(SpringBoot+Minio) 一、Uni文件上传 (1)、文件上传的问题 UniApp文件上传文档 uni.uploadFile({ url: 'https://www.example.com/upload', //仅为示例,非真实的接口地址 files: 图片地址对象数组, formData: { 'user': 'test' }, success: (res) => { console.log(res.data); } });

也许是偶然R 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

文件上传安全以及防止无限制文件上传

在网络应用中,文件上传是一项常见功能,用户可以通过它上传图片、文档或其他媒体文件。然而,如果没有适当的安全措施,文件上传功能可能成为安全漏洞的源头。本文将探讨文件上传过程中的安全风险和防范措施,并详细讨论如何防止无限制文件上传,以保护应用和数据不受攻击。

常备不懈 6228

SpringBoot文件上传

介绍了在SpringBoot项目中如何上传文件

m0_61820867的博客 1万+

文件上传与下载

因此,在了解 Servlet 内置上传功能之后,再回头看 commons-fileupload 文件上传时,你会发现它们的基本逻辑/大道理时一样的,只不过 commons-fileupload 的实现会罗嗦一些。表示表单元素中的 input 数据以二进制的方式发送到服务端。在一个表单(Form)中,无论是否有文件上传控件,Servlet 3.0 都会将这些表单控件对应成代码中的一个 Part 对象。对我们而言,需要的是文本上传域中的 content-disposition 中的 filename 部分。

xiaotu的博客 2137

文件上传模板

文件上传Demo文件上传-本地上传概述使用场景原理用SpringBoot实现文件上传1. 实现步骤01. 搭建SpringBoot工程02. 准备文件上传的前端页面03. 实现文件上传的后端逻辑04. 配置静态资源存储服务05. 测试06. 对程序的优化 文件上传-本地上传 概述 使用场景 文件上传是程序开发中都会用到的一个需求,比如: 添加用户头像,文章封面… 富文本编辑(插件文件上传) 原理 用户选择文件发送request请求,程序将文件通过Java-IO流复制到服务器即为文件上传 用Sprin

qq_47267252的博客 2781

文件上传原理

这是在一个网络视频里我做的随堂笔记,部分内容可能不太严谨,但对于文件上传所需要的部件和必要条件的了解上还是有帮助的。 1、文件上传原理分析 文件上传方式有很多,但底层的实现都是文件的读写操作(I/O读写) 1.1文件上传的必要前提 • 提供form表单、method必须是post • form表单的entype必须是multipart/form-data • 提供input type=“file”...

tanmoney的博客 3580

SpringMVC实现文件上传

文件上传回顾 SpringMVC传统方式文件上传 SpringMVC跨服务器方式文件上传

技术积累,技术分享 4151

文件上传下载之文件上传

13.1  文件上传 13.1.1  概述 在开发基于Web的应用的时候,经常会碰到需要实现文件上传、下载的功能,比如编辑某个商品,需要给它上传一个图片等等。 不使用Struts2的话,可以有很多种方式来实现文件上传,比如使用Apache的Common-FileUpload等。但是这些传统的方式,实现起来非常麻烦,需要写很多代码来进行控制。 现在使用Struts2来实现文件上传的功能,会

吧主 1344

flask处理文件上传

在Flask框架中,你可以使用`request.files`对象来处理文件上传。以下是一个简单的文件上传的示例:

weixin_41777118的博客 3454

文件上传下载(1)_文件上传概述

本系列博客汇总在这里:文件上传下载汇总 目录一、文件上传概述1、文件上传的作用2、文件上传对页面的要求3、比对文件上传表单和普通文本表单的区别➣ 普通表单ღ 普通表单传递参数ღ 普通表单上传文件➣ 文件上传表单➣ 对比总结4、文件上传对 Servlet 的要求二、commons-fileupload1、fileupload 概述2、fileupload 简单应用3、简单上传示例 一、文件上传概述...

魏宇轩 1014

Spring+SpringMVC实现文件上传&文件上传源码解析&文件上传原理总结

Spring+SpringMVC实现文件上传&源码解析前言一、Spirng集成SpringMVC实现文件上传环境搭建二、CommonsMultipartResolver原理及源码解析总结SpringMVC文件上传原理 前言 本文章主要目的在于解析SpringMVC文件上传的CommonsMultipartFileResolver解析器及MultipartFile封装过程 一、Spirng集成SpringMVC实现文件上传 如果大家记得SpringMVC上传文件的代码步骤,那就忽略该环节,直接先

qq_42681995的博客 588
上一篇: 请求头协议与防盗链
下一篇: 文件的上传以及文件的下载
殇丶
博客等级 码龄10年 35粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值