文件上传组件比较

Spring Boot+Vue 文件上传,如何携带令牌信息? 但是,之前和小伙伴们提到的方案,是基于 session 来做认证的,所以并不需要考虑携带令牌的问题,但是在前后端分离开发中,我们可能采用 JWT 或者是 OAuth2+JWT 的方式来做认证,如果是这样的话,那我们就要手动传递令牌了。今天就来和大家说说手动传递令牌的事。1.传统方案我们先来看看,基于 session 认证,文件上传要怎么做。 阅读详情
 从上述的表格对比中可以看出Cos始终保持着良好的性能。在上传量较小(容量<2M,这是最常出现的情况)时,Cos比FileUpload性能并没有好很多,但SmartUpload就已经开始显出弱势。
   随着容量的增大,FileUpload和SmartUpload的性能下降非常快,直到200M容量时,SmartUpload已经不堪重负崩溃了,而Cos此时的花费时间比FileUpload少了20多秒,不能不说在本次的评测中,Cos的性能位居第一。
通过对三种流行的上传组件进行对比,我认为选用Cos是比较好的。在实际的项目中,可以把上传的文件放到文件夹,文件路径存于数据库中以便于管理。
   如果需要把文件上传到数据库也很简单,从Cos中已经得到了上传文件(java.io.File),其后的操作很平常所做的一样:  通过File得到inputStream,存到数据库的blob或Clob字段即可。
   对于使用Struts的项目,我觉得还是使用FileUpload比较好,因为Struts天生集成了FileUpload的功能,使用FileUpload会带来很多的便利。而如果想要开发独立的上传组件,则用Cos是最好的选择,可以在Cos的基础上封装一层,暴露给业务程序员的只是一些简单易用的API,而且可以给这些API加上自定义的javaDoc,这对于实际的开发和将来的扩展都是非常方便的。
以下使用cos组件简单的实现文件上传功能:
1. 将下载的cos.jar文件所在目录加入到环境变量classpath中
2. 编写一个html文件uploadExample.htm:
1. <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
2. http://www.w3.org/TR/html4/loose.dtd>
3. <html>
4. <head>
5. <meta http-equiv=Content-Type content=text/html; charset=gb2312>
6. <title>实现文件上传的一个例子程序</title>
7. </head>
8. <body>
9. <div align="center">
10. <!-- enctype参数很重要,当向服务器传送如片或文件这样包含非ASCII字符或二进制数的数据时,跟据RFC1867规定必须使用"mutiplepart/form-data"内容类型-->
11. </div>
12. <form name=form1  method=post enctype=multipart/form-data action=upload.jsp>
13. <div align="center">
14. <table width="255" border="1" >
15. <tr>
16. <td><input name=file12 type=file></td>
17. </tr>
18. <tr>
19. <td><input name=file2 type=file></td>
20. </tr>
21. <tr>
22. <td><input name=file3 type=file></td>
23. </tr>
24. <tr>
25. <td align="center"><input type=submit name=Submit value=提交></td>
26. </tr>
27. </table>
28. </div>
29. </form >
30. </body>
31. </html>
3. 实现上传文件功能可以写一个Servlet, 这里简单起见,写成一个upload.jsp文件:
1. <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3. <html xmlns="http://www.w3.org/1999/xhtml">
4. <head>
5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
6. <title>实现文件上传功能 </title>
7. </head><%@page import="com.oreilly.servlet.MultipartRequest" %>
8. <%@page contentType="text/html; charset=gb2312" %>
9. <%
10. //文件上传后,保存在"f:/uploadfiles"
11. String saveDirectory = "f:/uploadfiles";
12. //每个文件最大5m,最多3个文件,所以...
13. int maxPostSize = 3 * 5 * 1024 * 1024 ;
14. //response的编码为gb2312,同时采用缺省的文件名冲突解决策略,实现上传
15. MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize, "gb2312");
16. %>
4. 将以上两个文件放到tomcat安装目录/webapps目录下的一个文件夹如uploadExample下即可
附:(http://blog.youkuaiyun.com/hdhero/archive/2005/03/22/326405.aspx)
一.SmartUpload组件例子代码:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.jspsmart.upload.*" %>
<%
   //实例化上载bean
    SmartUpload mySmartUpload=new SmartUpload();
    //初始化
    mySmartUpload.initialize(pageContext);
    //设置上载的最大值,注意:如果这里设置过大会出现问题!
    mySmartUpload.setMaxFileSize(500 * 1024*1024);
    //上载文件
    mySmartUpload.upload();
   //循环取得所有上载的文件
   for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
   //取得上载的文件
   com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
   if (!myFile.isMissing())
    {
   //取得上载的文件的文件名
    String myFileName=myFile.getFileName();
    //取得不带后缀的文件名
    String  suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
    //取得后缀名
    String  ext= mySmartUpload.getFiles().getFile(0).getFileExt(); 
    //取得文件的大小 
    int fileSize=myFile.getSize();
    //保存路径
    String aa=getServletContext().getRealPath("/")+"jsp//";
    String trace=aa+myFileName;
    //取得别的参数
    String explain=(String)mySmartUpload.getRequest().getParameter("text");
    String send=(String)mySmartUpload.getRequest().getParameter("send");
    //将文件保存在服务器端
    myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
    %>
注意使用smartupload上传过大文件,或者多文件的时候可能出现CPU或内存占用过高的问题.只有重新启动容器才能恢复正常!
二.commons-fileupload组件
<%@ page language=“java”contentType=“text/html;charset=GBK”%>
<%@ page import=“java.util.*”%>
<%@ page import=“org.apache.commons.fileupload.*”%>
<html>
<head>
<title>文件上传</title>
</head>
<%
 DiskFileUpload fu = new DiskFileUpload();
 // 设置允许用户上传文件大小,单位:字节
 fu.setSizeMax(10000000);
 // 设置最多只允许在内存中存储的数据,单位:字节
 fu.setSizeThreshold(4096);
 // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
 fu.setRepositoryPath(“D://Tomcat5//TEMP”);
 //开始读取上传信息
 List fileItems = fu.parseRequest(request);
 // 依次处理每个上传的文件
 Iterator iter = fileItems.iterator();
 while (iter.hasNext()) {
  FileItem item = (FileItem) iter.next();
  //忽略其他不是文件域的所有表单信息
  if (!item.isFormField()) {
   String name = item.getName();
   item.write(“D://UploadTest//”+ name);
 }
}
%>

WebUploader 文件上传组件的开发实例 你可以从官方网站(https://fex.baidu.com/webuploader/)下载最新版本的 WebUploader,然后将相应的 JavaScript 文件引入到你的 HTML 页面中。WebUploader 是一个功能强大的文件上传组件,它提供了丰富的功能和灵活的配置选项,使开发者能够轻松地实现文件上传功能。上述代码是一个简单的文件上传示例,你可以根据自己的需求进行进一步的定制和扩展。在上面的代码中,我们创建了一个文件上传区域,并初始化了 WebUploader。// 文件接收服务端。 阅读详情

相关推荐

把“思考”塞进 1 KB:我用纯 C 语言给单片机手搓了一个微型 Transformer 推理引擎

摘要:本文探讨了在64KB SRAM的MCU(如STM32H743)上部署精简Transformer模型的技术方案。通过将6层Transformer压缩至1层(隐藏维度128)、4-bit KV-Cache量化等优化手段,实现了240KB Flash占用和59KB RAM峰值,推理延迟184ms(400MHz Cortex-M7),准确率96.1%。关键创新包括:手工优化矩阵乘(CMSIS-NN)、查表法Softmax/LayerNorm、权重按Tile重排提升Cache命中率(60%→94%)。

qq_74383080的博客 2923

文件上传组件的比较与使用续

从上述的表格对比中可以看出Cos始终保持着良好的性能。在上传量较小(容量&lt;2M,这是最常出现的情况)时,Cos比FileUpload性能并没有好很多,但SmartUpload就已经开始显出弱势。    随着容量的增大,FileUpload和SmartUpload的性能下降非常快,直到200M容量时,SmartUpload已经不堪重负崩溃了,而Cos此时的花费时间比FileUpload少了2...

章鱼之家 242

Trae编程工具Cline插件深度集成与Claude 3.7 API Key高级配置实战

本文详细介绍了如何在Trae编程工具中深度集成Cline插件并配置Claude 3.7 API Key的高级技巧。通过实战案例,展示了如何提升代码补全质量、实现多轮对话记忆及自定义代理设置,特别适合全栈工程师和需要私有化AI服务的团队。文章还涵盖了安装流程、API Key获取方式及企业级部署的最佳实践。

weixin_28829903的博客 436

前端上传大型文件或超长数据的解决办法

最近这块好像挻火的,今天早上又有一位网友加我微信,也是想了解这块的技术和方案,实际上我的微信之前就已经在网上公开了,但是论坛里面很多网友还是不知道。昨天晚上论坛里面有一个网友发私信给我,想和我探讨一下这方面的技术问题,他是刚开始接触这块,以前没怎么接触过,都是做的后端,主要是以数据库操作为主,他也是最近接的一个项目,遇到了大文件上传下载的问题,问我有没有好用的组件,其它的要求没有,主要就是好用,方便。

weixin_52041354的博客 1939

零基础玩转华为AP 4050DN-HD:FAT模式家庭无线网络配置实战

本文为零基础用户提供华为AP 4050DN-HD从FIT模式转换为FAT模式的完整实战教程。详细介绍了固件升级、模式转换以及配置家庭无线网络(包括路由、DHCP、Wi-Fi和NAT)的每一步操作,帮助用户将企业级瘦AP改造为高性能家庭胖AP,打造稳定可靠的家庭网络环境。

weixin_29196613的博客 631

从T型结到Wilkinson:5分钟搞懂功分器选型指南(附最新射频测试数据对比)

本文通过对比T型结、电阻型和Wilkinson三种功分器的核心原理与实测数据,提供了清晰的射频功分器选型指南。文章结合最新的2.4GHz ISM频段测试数据,分析了插入损耗、回波损耗和端口隔离度等关键指标,并针对窄带物联网、射频测试及合成系统等不同应用场景,给出了具体的选型建议和实战提醒,帮助工程师根据系统需求做出最优决策。

bush的博客 305

Bootstrap File Input,最好用的文件上传组件

本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存。

沉默王二 24万+

《Cesium 基础知识点》- 申请 Cesium Ion 密钥

一、访问 https://cesium.com/ion/signin/tokens 二、登录/注册 三、申请 四、使用 // 密钥 let defaultAccessToken = 'your token string'; // 设置 Cesium.Ion.defaultAccessToken = defaultAccessToken; // 初始化 let viewer = new Cesium.Viewer('cesiumContainer', {}); ...

前端技术 2571

Vue3 组件封装——文件上传

new 一个 FileReader 实例,并调用 readAsDataURL 方法传入参数 file 来读取选中的图像文件,最后在 onload 事件中,获取到成功读取的文件内容。最后插入一个 img 节点设置 src = reader.result显示选中的图片

Skybububu的博客 6719

全新YOLO26有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

🔥《2026年YOLO26改进专栏》🔥 🚀持续更新500+最前沿创新改进点(顶会顶刊论文/独家创新策略),涵盖主干网络、各种卷积、注意力机制、检测头等模块,助力科研论文发表与模型性能提升,支持检测/分割/分类任务。订阅即获完整可运行项目,提供专业QQ答疑群,适合科研发论文(SCI/CCF/核心)及工业应用(PCB/医学/遥感检测)。专栏价格将逐步上涨,早订更优惠! ⭐特色:非计算机专业友好、模块可自由组合、全网独家创新;📌适用:研究生大论文和小论文创新、小目标检测、多领域科研应用,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 5141

把事务数据变成可分析数据:用 ABAP CDS 构建 Cube View 与 Query View,并拆解 OData 取数的底层路径

ABAP CDS分析建模:Cube与Query视图的实践解析 本文探讨了ABAP CDS分析建模中Cube View与Query View的核心区别与应用场景: 架构定位 Cube View作为分析型数据源,定义维度和度量的基础语义 Query View作为消费投影,控制查询可见字段和聚合逻辑 关键实现 通过@Analytics.dataCategory: #CUBE声明分析数据源 使用@DefaultAggregation确保指标口径一致性 @Analytics.query: true启用分析引擎特性 运

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 141

文件上传组件的比较

JAVAZHICHIZHE的专栏 704

使用virtuoso gds转lef操作方法

2) 然后,需要创建Pin,这里Pin的概念不同于label/text,是有实际金属的,二者的区别类似于pr中的port和terminal。1) 首先,需要画prBoundary,这个用drawing层的prBoundary画是不行的,不过建议pr阶段就把prBoundary转到gds里,在virtuoso layout中画prBoundary就比较容易。另外,用Create - Create Pin也可以创建pin,更适用于PG pin,操作时先给pg shape打label,最好放正中间。

m0_61544122的博客 1380

文件上传组件的比较与使用

  开发Web程序通常需要文件上传功能,现在有很多免费的文件上传组件,其中使用比较多的也是非常著名的有:&lt;o:p&gt;&lt;/o:p&gt; FileUpload (http://jakarta.apache.org/site/downloads/downloads_commons-fileupload.cgi)&lt;o:p&gt;&lt;/o:p&gt; Cos        (ht...

章鱼之家 196

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

主题:文件上传组件的比较与使用续

从上述的表格对比中可以看出Cos始终保持着良好的性能。在上传量较小(容量   随着容量的增大,FileUpload和SmartUpload的性能下降非常快,直到200M容量时,SmartUpload已经不堪重负崩溃了,而Cos此时的花费时间比FileUpload少了20多秒,不能不说在本次的评测中,Cos的性能位居第一。通过对三种流行的上传组件进行对比,我认为选用Cos是比较好的。在实际的项目中,

bean_lin的专栏 495

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

web文件上传组件比较jQuery File Upload和Fine Uploader

jQuery File Upload: https://blueimp.github.io/jQuery-File-Upload/ Fine Uploader: http://fineuploader.com/demos.html 以前swfupload什么的,经过年代的变迁,要退出舞台啦。 转载于:https://www.cnblogs.com/luodengxiong/p/526...

weixin_34346099的博客 273

OV9734 DATASHEET,完整规格书

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

如何建立自己的上传组件的编程思路

以前搜集的一些资料---如何建立自己的上传组件的编程思路 关键词:ASP 在上次贴出的文章中我提到了几种上载组件的比较现在我们自己动手,丰衣足食,来建立自己的上载组件这个上载组件应该具备以下功能:1。应该能够接受各种HTML的form元素中传过来的数值,而不用知道是通过text或则select传过来的2。应该能够给出一个上载路径3。应该能够限制上载文件的大小4。应该能够支持多个文件同时上载5。应该

chinamao的原创地 866

几种上传方法(jspsmart,o`reilly,struts)介绍和比较(原创)

几种上传方法介绍、比较 作者:王智伟2004-10-10目     录1 引言2 O`Rrilly-Cos. 3 jspsmartUpload. 4 Jakarta Apache Struts upload. 5 几种方法的比较  1 引言一个网站总是不可避免的要和用户进行信息的交互,倘若是从窗体传送一般的简单输入类型(例如:text、password、

ghostmanxp的专栏 3008

两款文件批量上传组件

第一款是flash的上传组件 http://www.apueee.com/2008/07/05/flash-multiple-file-uploader/ 第二款是jQuery+flash的上传组件 http://www.plupload.com/example_queuewidget.php 第三款式swfupload 请见附件...

漫漫程序人生路 256

Element Plus 文件上传组件中 onChange 事件删除文件问题解析

在使用 Element Plus 的文件上传组件时,开发人员可能会遇到一个看似简单但实则棘手的问题:在 onChange 事件处理函数中尝试删除用户选择的文件时,操作无法生效。这个问题涉及到 Vue 3 的响应式系统原理和 Element Plus 组件内部实现机制。 ## 问题现象 当开发者为 el-upload 组件设置 onChange 事件处理函数,并在其中调用 handleRemov...

gitblog_00908的博客 396

Vue3文件上传组件源码分享:如何实现多平台兼容与高效上传?

要求:免费,开源,技术支持技术:百度webuploader,分块,切片,断点续传,秒传,MD5验证,纯JS实现,支持第三方软件集成前端:vue2,vue3,vue-cli,html5,webuploader后端:asp.net,.net mvc,.net core,asp,jsp,java,springboot,php,数据库:MySQL,Oracle,SQL Server,达梦,人大金仓,国产数据库。

weixin_52050572的博客 630

JavaWeb18(文件上传&富文本编辑器)

它所见即所得的特点,使你在编辑时所看到的内容和格式,能够与发布后看到的效果完全一致。CKEditor 完全是基于 JavaScript 开发的,因此不必在客户端进行任何安装,并且兼容各大主流浏览器。如果多个用户上传的文件名称一样,则肯定会发生覆盖的情况,为了避免这类问题,可以采用为上传文件自动命名的方式。,Multi-function Text Editor, 简称 MTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器。设置表单的enctype属性,表示以二进制的方式提交表单。

qq_73126462的博客 841

建立自己的上传组件的编程思路

以前搜集的一些资料---如何建立自己的上传组件的编程思路关键词:ASP在上次贴出的文章中我提到了几种上载组件的比较现在我们自己动手,丰衣足食,来建立自己的上载组件这个上载组件应该具备以下功能:1。应该能够接受各种HTML的form元素中传过来的数值,而不用知道是通过text或则select传过来的2。应该能够给出一个上载路径3。应该能够限制上载文件的大小4。应该能够支持多个文件同时上载5。

蝈蝈俊.net 1783

浅谈上传组件原理与设计

HTTP 文件上传的基本原理: 使用html 的<input type=”file” name=”xxx”> 标签,提交form 的几个属性必须为: method=post encType=multipart/form-data; method 属性必须设为post的原因是:值不是放在URL之后传递到服务器的; encType属性:这个属性管理的是表单的MIM...

weixin_30362233的博客 149

ajax请求携带tooken_Spring Boot+Vue 文件上传,如何携带令牌信息?

关于文件上传这块,松哥之前也写了好几篇文章了,甚至还有视频:Spring Boot+Vue+FastDFS 实现前后端分离文件上传但是,之前和小伙伴们提到的方案,是基于 session 来做认证的,所以并不需要考虑携带令牌的问题,但是在前后端分离开发中,我们可能采用 JWT 或者是 OAuth2+JWT 的方式来做认证,如果是这样的话,那我们就要手动传递令牌了。今天就来和大家说说手动传递令牌的事。...

weixin_35348635的博客 300
上一篇: 2003应用
下一篇: 关于MySQL select into 和 SQLServer select into
peng.zhang
博客等级 码龄20年 11粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值