java fileupload 文件类型_JSP使用Common FileUpload组件实现文件上传及限制上传类型实例代码...

1、将commons-fileupload-1.3.3.jar复制到web应用的lib文件夹下,在webroot目录下创建limit.jsp页面,在该页面中添加一个文件域的表单,设置类型为    multipart/form-data。代码如下:

上传图书课件

选择一个rar文件:

上述代码指定提交后将请求提交给limitfile处理,limitfile(servlet)用来处理上传文件及判断文件类型是否匹配,显示上传结果。

2、创建名为limitfile的servlet,并在dopost()方法中编写实现代码,如下所示:

public void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {

request.setcharacterencoding("utf-8");

response.setcharacterencoding("utf-8");

response.setcontenttype("text/html");

printwriter out = response.getwriter();

string uploadpath = "";

diskfileitemfactory factory = new diskfileitemfactory();

//设置是否使用临时文件保存解析出来的数据的那个临界值,该方法传入参数的单位是字节。

factory.setsizethreshold(30 * 1024);

//用于设置setsizethreshold()方法中提到的临时文件的存放目录,这里要求使用绝对路径。

factory.setrepository(factory.getrepository());

servletfileupload upload = new servletfileupload(factory);

list list = null;

try{

list = upload.parserequest(request);

string[] limit = new string[]{".jpg", ".gif", ".png", ".bmp"};

//定义限制的文件类型

suffixfilefilter filter = new suffixfilefilter(limit);

//获取suffixfilefilter实例

iterator iterator = list.iterator();

while(iterator.hasnext()){

fileitem item =(fileitem)iterator.next();

if(!item.isformfield()){

string filepath = item.getname();

if(filepath != null){

file filename= new file(filepath);

file uploadfile = new file(request.getsession().getservletcontext().getrealpath("/") + "upload");

uploadpath = uploadfile.getabsolutepath()+file.pathseparator + uploadpath;

//因为路径后面多了个";"号,所以要去掉

uploadpath = uploadpath.substring(0, uploadpath.length()-1);

file savefile = new file(uploadpath,filename.getname());

boolean flag = filter.accept(savefile);

if(flag){

out.print("禁止上传传图片文件");

break;

}else{

try {

item.write(savefile);

out.print("文件上传成功");

} catch (exception e) {

out.print("文件上传失败了");

e.printstacktrace();

}

}

}

}

}

}catch(fileuploadexception e){

e.printstacktrace();

}

}

上述代码在字节串数组limit中定义了不允许上传的文件类型,然后将该数组传递给suffixfilefilter类的构造函数。在通过该类的accept()方法验证当前上传的文件是否符合条件。最后将文件保存到项目的upload目录下。

总结

以上所述是小编给大家介绍的jsp使用common fileupload组件实现文件上传及限制上传类型实例代码,希望对大家有所帮助

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发
文件上传是Web开发中常见的功能之一,Java中也提供了多种方式来实现文件上传。其中,一种常用的方式是通过Apache的commons-fileupload组件实现文件上传。 以下是实现文件上传的步骤: 1.在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> ``` 2.在前端页面中添加文件上传表单: ```html <form method="post" enctype="multipart/form-data" action="upload"> <input type="file" name="file"> <input type="submit" value="Upload"> </form> ``` 3.在后台Java代码中处理上传文件: ```java // 创建一个DiskFileItemFactory对象,用于解析上传的文件 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置缓冲区大小,如果上传的文件大于缓冲区大小,则先将文件保存到临时文件中,再进行处理 factory.setSizeThreshold(1024 * 1024); // 创建一个ServletFileUpload对象,用于解析上传的文件 ServletFileUpload upload = new ServletFileUpload(factory); // 设置上传文件的大小限制,这里设置为10MB upload.setFileSizeMax(10 * 1024 * 1024); // 解析上传的文件,得到一个FileItem的List集合 List<FileItem> items = upload.parseRequest(request); // 遍历FileItem的List集合,处理上传的文件 for (FileItem item : items) { // 判断当前FileItem是否为上传的文件 if (!item.isFormField()) { // 获取上传文件的文件名 String fileName = item.getName(); // 创建一个File对象,用于保存上传的文件 File file = new File("D:/uploads/" + fileName); // 将上传的文件保存到指定的目录中 item.write(file); } } ``` 以上代码中,首先创建了一个DiskFileItemFactory对象,用于解析上传的文件。然后设置了缓冲区大小和上传文件的大小限制。接着创建一个ServletFileUpload对象,用于解析上传的文件。最后遍历FileItem的List集合,判断当前FileItem是否为上传的文件,如果是,则获取文件名,创建一个File对象,将上传的文件保存到指定的目录中。 4.文件上传完成后,可以给用户一个提示信息,例如: ```java response.getWriter().write("File uploaded successfully!"); ``` 以上就是使用Apache的commons-fileupload组件实现文件上传的步骤。需要注意的是,文件上传可能会带来安全隐患,因此在处理上传的文件时,需要进行严格的校验和过滤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值