1、定义合法文件类型的配置文件 allowuploadfiletype.properties
gif=image/gif
jpg=image/jpg,image/jpeg,image/pjpeg
bmp=image/bmp
png=image/png
swf=application/x-shockwave-flash
doc=application/msword
txt=text/plain
xls=application/vnd.ms-excel
ppt=application/vnd.ms-powerpoint
pdf=application/pdf
exe=application/octet-stream
2、验证工具类(从配置文件中读取可上传文件类型)
package cn.changtusoft.publicplatform.web.forms;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class Utils {
/**
* 存放可上传文件,从配置文件中读取
*
* 采用单例模式,只在类加载的时候读取一次,提高性能
*/
private static Properties pros = new Properties();
static {
try {
pros.load(BaseActionForm.class.getClassLoader().getResourceAsStream("allowuploadfiletype.properties"));
} catch (IOException e) {
System.out.println("读取定义允许上传文件的配置文件失败!!!");
e.printStackTrace();
}
}
/**
* 验证允许上传文件类型
*
* @param formfile
* @return
*/
public boolean validateFileType(FormFile formfile) {
if(formfile!=null && formfile.getFileSize()>0){
// 用来保存合法文件类型
List<String> allowType = new ArrayList<String>();
Set keySet = pros.keySet();
Iterator ite = keySet.iterator();
while (ite.hasNext()) {
String key = (String)ite.next();
String values = pros.getProperty(key);
// 转换为数组,类型
String[] valueArray = values.split(",");
for (String v : valueArray) {
allowType.add(v);
}
}
// 文件后缀名
String ext = getFileExt(formfile);
// 既判断文件的类型,也判断文件的后缀名,确保安全性
return allowType.contains(formfile.getContentType().toLowerCase()) && pros.keySet().contains(ext);
}
return false;
}
/**
* 验证上传图片格式是否合法
*
* @param formfile
* @return
*/
public boolean validateImageFileType(FormFile formfile) {
if(formfile!=null && formfile.getFileSize()>0){
List<String> arrowType = Arrays.asList("image/bmp","image/png","image/gif","image/jpg","image/jpeg","image/pjpeg");
return arrowType.contains(formfile.getContentType().toLowerCase());
}
return false;
}
/**
* 获取文件后缀名
*
* 如:abc.gif ===> gif
*
* @param formFile
* @return
*/
public String getFileExt(FormFile formFile) {
if (formFile != null) {
String fileName = formFile.getFileName();
return fileName.substring(fileName.lastIndexOf(".")+1);
}
return null;
}
}
分享到:
相关推荐
`java验证文件真实格式和编码格式工具类` 提供的功能对于处理不同来源的文件至关重要,尤其是在处理用户上传的文件或跨平台数据交换时。通过`VerifyFileType.java` 和 `VerifyFileEncoder.java`,开发者可以确保正确...
此外,工具类还可以包含其他辅助方法,如验证文件大小、检查文件类型的安全性、提供进度回调等,以增强文件操作的灵活性和安全性。同时,为了防止文件覆盖或路径遍历攻击,工具类需要对保存和读取的文件路径进行严格...
这个"上传文件工具类"显然提供了处理文件上传的功能,可能包括了文件的读取、验证、编码转换、异常处理等多个方面。下面我们将深入探讨这个主题,以及相关的关键知识点。 首先,`UploadFileUtils.java`很可能包含了...
在批量上传方面,工具类需要能够处理多个文件,循环遍历`$_FILES`数组中的所有部分,对每个文件进行独立的处理。这通常涉及异步上传和进度条显示,以便提升用户体验。 返回JSON数据则是为了让前端能够获取到上传...
这个过程可能包括文件重命名、大小检查、类型验证等步骤,以确保上传的安全性和有效性。 对于Excel2007的处理,工具类可能使用Apache POI库。POI是Apache软件基金会的一个开源项目,专门用来处理Microsoft Office...
本篇文章将详细探讨如何利用Socket实现一个强大的文件上传工具类,以及涉及到的相关知识点。 一、Socket基础知识 Socket,也被称为套接字,是网络通信中的一个抽象概念,它代表了两台机器间通信的一个端点。在Java...
这个压缩包"安卓文件下载上传解压相关-工具类支持多线程断点下载.rar"包含了一个工具类,旨在帮助开发者处理这些操作。下面将详细讨论相关知识点。 1. 多线程下载: 在Android中,为了提高文件下载速度,通常会采用...
在“上传文件验证表单”中,表单验证是一个关键部分,它确保用户提交的数据满足预设的规则,例如文件类型、大小等限制。表单验证可以发生在客户端(JavaScript)和服务器端,以提供双重保障。在客户端,验证通常实时...
在给定的"图片、文件上传、数据库连接工具类"压缩包中,很可能包含了实现这些功能的Java类。这些类可能包含文件上传的控制器、数据库连接池配置、事务管理逻辑以及对JDBC的封装。通过阅读和理解这些代码,开发者可以...
FTP上传下载工具类通常是指一个编程接口或代码库,为开发者提供便捷的FTP客户端功能,包括连接到FTP服务器、上传文件、下载文件以及管理远程目录等操作。 在开发中,我们可能遇到以下关键知识点: 1. FTP基本概念...
在C#中,判断上传文件的类型和大小是网络应用开发中的常见需求,尤其是在处理用户上传文件的功能时。为了确保安全性和性能,开发者通常需要验证文件的类型和大小,防止恶意大文件耗尽服务器资源,或者非法文件类型...
这些工具类涵盖了从文件操作到网络通信的多个领域。 首先,FTP操作类是用于与FTP服务器进行交互的组件。它可能包含连接、上传、下载文件以及目录管理等方法。例如,`FtpClient`类可以用来建立FTP连接,`UploadFile`...
以上是关于Java文件上传工具类处理文件及文本数据的主要知识点。理解并熟练掌握这些概念,可以帮助开发者创建高效、安全的文件上传系统。在实际开发中,还需要根据具体需求和项目规范来定制和扩展这些基础功能。
标题中的“七牛云上传需要的工具类”指的是一个专门为七牛云服务设计的Java库或者代码模块,用于简化文件上传的操作。 首先,七牛云提供了官方SDK,包括Java版,它包含了上传、管理文件、获取访问链接等一系列功能...
Base64工具类-字符编码工具类-数据类型转换-日期工具类-Escape中文...MD5编码工具类- MD5加密 生成32位md5码-数字工具类-随机数工具类-反射工具类-字符串处理工具类-URL工具类-UUID-常用的数据验证工具类-XML工具类-
Java版FTP上传下载工具类简化了与FTP服务器交互的过程,通过封装相关操作,使得开发者可以便捷地进行文件的上传和下载任务。 `FtpUtil.java` 文件是这个工具类的核心,它通常会包含以下关键组件: 1. **连接设置**...
更严格的文件验证可能包括文件头信息的检查,以及使用专门的库来识别文件内容。 本文中提供的代码示例为需要使用uploadify进行文件上传的开发人员提供了一个非常实用的参考。通过结合这些代码和技术,可以较为轻松...
6. 主测试方法:描述中提到可以使用main方法直接测试,这意味着工具类提供了一个主函数入口,允许开发者输入URL和其他参数,直接运行并查看请求结果,方便调试和验证。 7. 使用示例:调用此类工具时,开发者可能...
4. **验证工具类**:`ValidatorUtil`可以验证输入数据的有效性,比如邮箱格式、手机号码格式等,确保数据的质量。 5. **HTTP请求工具类**:在处理HTTP请求时,`HttpRequestUtil`可以帮助获取请求参数、请求头、...
这个工具类提供了上传文件的功能,可以根据需要扩展其他功能,如下载文件、删除文件、创建目录等。通过调用`SftpUtil.uploadFile()`方法,可以轻松地实现SFTP文件上传。 总之,JSch库为Java开发者提供了一个强大的...