献给建军八十周年
文件上传在JAVA应用中比较常用,现在也有许多成熟免费的第三方工具如:Commons FileUpload,瀟湘xiaoxiang.fileUpload,O'Reilly cos,smartUpload。个人使用过后感觉前两者效果比较理想,后两者由于种种原因已经停止新版本的开发了。
common-fileupload组件是apache的一个开源项目之一,可以从http://commons.apache.org/fileupload/下载最新版本FileUpload 1.2。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。不足:还欠缺一些相关功能,有待于进一步完善。这个包需要Commons IO的支持,可以在http://commons.apache.org/io/下载最新版本:1.3.2 。在此主要介绍几个关键步骤:
1.创建一个文件工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
2.设置缓冲区大小,10kb
factory.setSizeThreshold(1024 * 10);
3.设置临时目录:
factory.setRepository(new File(tempPath));
4.创建文件上传对象
ServletFileUpload upload = new ServletFileUpload(factory);
5.设置单个上传文件的最大值,10M
upload.setFileSizeMax(1024 * 1024 * 10);
6.设置所有文件的最大值,100M
upload.setSizeMax(1024 * 1024 * 100);
7.得到所有上传对象
List items = upload.parseRequest(request);
8.迭代取出所有数据写入文件
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 区分数据是否为简单的表单数据
if (item.isFormField()) {
// 可以获得简单的表单数据,即除属性为file以外的表单项.以下为表单项的name 和 value
item.getFieldName() + item.getString();
} else {
// 提交的文件,可以得到一些属性
String fieldName = item.getFieldName();
// 得到上传文件的大小
long sizeInBytes = item.getSize();
// 得到上传文件的全路径和文件名 例:D:\download\Hibernate.rar
String name = item.getName();
//处理文件名后得到文件名后缀 \Hibernate.rar
String filename = name.substring(item.getName()
.lastIndexOf("\\"), name.length());
//拼接出新的文件名newPath + filename后创建一个文件对象
File f = new File(newPath + filename);
//创建文件
item.write(f);
}
}
xiaoxiang.fileUpload:可以从http://www.xiaoxiang.net/jspupload/main/index.asp 下载最新版2.1
1.支持中文。
2.一次上传多个文件。
3.允许得到上传的文件的原文件名,并可以将文件改名存入服务器。
4.允许设定每次上传文件的总大小,和单个文件的文件大小。
5.可以设定只被允许文件后缀名列表。
6.可以设定只被允许的文件类型列表。(注:从文件格式分析,比只分析后缀名更加准确.)
7.可以设定是否覆盖服务器上同名文件。
8.可以将所有文件上传到一个文件夹,也可以将文件分类存入不同文件夹。
官方有许多教程和例子所以不多做介绍,使用起来还是比较爽手的。
备注:这些第三方工具与现有项目的集成都是非常方便简单,只需将.jar文件放入工程的lib目录下即可。
cos上传组件:
http://www.servlets.com/cos/
附件:
1.FileUpload中文帮助
2.由于jspsmart网站已关闭所以相应的下载也就无法得到,所以在附件中我提供了支持中文的jar包和例子喜欢的朋友也可以学习一下和感受一下。
分享到:
相关推荐
考虑到易用性,插件应该设计简洁直观的用户界面,使商家和消费者都能轻松上传文件。 10. 适应性与兼容性: 为了满足不同用户的需求,插件需兼容各种浏览器和设备,包括移动设备上的文件选择和上传。 通过【下载...
net_edit提供了友好的界面,让用户能够轻松上传文件,支持多种文件格式。上传过程中,可能采用了断点续传技术,即使网络不稳定也能确保文件完整上传。下载则需确保安全性和速度,可能采用HTTP/HTTPS协议,同时提供...
hapi-upload [即将推出!... :sunrise: 在您的 Hapi.js 应用程序中轻松上传文件 我们正在将我们在 Meteor 中所做的工作移植到 Hapi.js: ://github.com/ideaq/image-uploads 如果你想帮助建立这个,请说出来!
本文将详细解析如何轻松实现超大文件的分片上传,并讨论相关的关键知识点。 首先,理解“分片上传”的概念是至关重要的。大文件分片上传是指将一个大的文件拆分成若干个小的块或“片”,每个片单独上传,然后在...
DropIt是一款基于Node.js开发的文件上传工具,它旨在提供简单、高效的文件上传服务,让用户能够轻松上传文件并获取分享链接。在这个项目中,开发者利用了Node.js的非阻塞I/O模型和丰富的生态系统,实现了高效的数据...
4. **上传文件**:在 Arduino IDE 中,有一个特殊的工具可以帮助你上传文件到 SPIFFS。在 "Sketch" 菜单中选择 "Export Compiled Binary" 生成固件,然后使用 ESP8266FS 或 ESP32FS 工具将文件打包到固件中。之后,...
它使得开发者能够轻松地在后台处理文件上传,同时保持用户界面的交互性和无刷新特性。以下是对这个知识点的详细说明: 1. **文件选择**:在HTML页面中,我们可以添加一个`<input type="file">`元素,让用户选择要...
c.JSON(400, gin.H{"status": "error", "message": "未找到上传文件"}) } }) r.Run(":8080") // 启动服务 } ``` 在这个例子中,我们定义了一个POST路由`/upload`,该路由接收一个名为`file`的表单字段,代表...
总的来说,Bootstrap-fileinput提供了一个强大且易于定制的多文件上传解决方案,通过合理的配置和事件处理,可以轻松地集成到各种Web项目中。同时,配合后端服务器的处理,能够实现安全、高效的文件上传功能。
要实现文件上传进度条,我们需要使用到Layui的AjaxUpload组件,该组件可以用来上传文件并显示上传进度。我们可以使用`layui.upload`方法来上传文件,并使用`on`方法来监听上传进度。 例如: ```javascript layui....
Bootstrap文件上传组件FileInput是一...通过上述内容,你应该对Bootstrap File Input组件有了全面的认识,能够轻松实现文件批量上传的功能。实践中,根据具体项目需求调整配置,就能打造出用户体验优秀的文件上传功能。
使用 JSCH 中的 ChannelSftp 上传文件和文件夹 JSCH(Java Secure Channel)是一款自由和开源的 Java 库,提供了安全的通信通道,包括 SSH、SFTP、SCP 等协议。 ChannelSftp 是 JSCH 中的一个实现 SFTP 协议的 ...
本文将深入探讨如何使用C#来实现文件上传,并重点关注以下几个方面:如何利用C#进行多文件上传、如何控制上传文件的大小、以及如何设置上传文件的格式限制等。 #### 二、基础知识准备 1. **ASP.NET**: ASP.NET是...
这三个库的结合使用,使得开发人员能够轻松地构建一个功能完备的文件上传系统,包括验证文件类型、大小,处理多文件上传,以及有效地存储和管理上传的文件。在实际开发中,这些库经常与Servlet、Spring MVC等Web框架...
red_heart:Contributing:person_raising_hand:功能:person_raising_hand:谁在使用Upload Service:megaphone:Credits:scroll:许可功能Android 5.0(API 21)到Android 10(API) 29)支持微小的库上传文件到具有FTP,...
在Web应用程序中,传统的HTML表单仅支持单个文件上传,而Flash通过其ActionScript编程语言和灵活的API,可以轻松地处理多个文件的选择和上传。这个功能通常涉及到以下几个关键知识点: 1. **ActionScript**:...
本文将深入探讨Uploadify的工作原理、主要特点以及如何在项目中实现批量上传文件。 ### Uploadify的工作原理 Uploadify基于Flash和HTML5技术,通过JavaScript与服务器端进行通信。它利用浏览器的File API,允许...