1.下载相应的组件的最新版本

Commons FileUpload 可以在http://jakarta.apache.org/commons/fileupload/下载

附加的Commons IO  可以在http://jakarta.apache.org/commons/io/下载

2.将commons-fileupload-1.2.1.jar commons-io-1.4.jar拷贝到$TOMCAT\common\lib目录下

3.具体调用代码如下:

3.1 上传页面代码:

//UploadExample.jsp

<%@ page contentType='text/html;charset=gb2312'%>
<html>
<title><%= application.getServerInfo() %></title>
<body>
上传文件程序应用示例
<form action='doUpload.jsp' method='post' enctype='multipart/form-data'>
<%--
类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。
--%>
请选择要上传的文件<input type='file' name='upfile' size='50'>
<input type='submit' value='提交'>
</form>
</body>
</html>

3.2 后台处理页面

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GBK"%>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<% response.setContentType("text/html");
// 图片上传路径
String uploadPath =request.getSession().getServletContext().getRealPath("/")+"upload/images/";
// 图片临时上传路径
String tempPath = request.getSession().getServletContext().getRealPath("/")+"upload/images/temp/";
// 图片网络相对路径
String imagePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
// 文件夹不存在就自动创建:
if(!new File(uploadPath).isDirectory())
new File(uploadPath).mkdirs();
if(!new File(tempPath).isDirectory())
new File(tempPath).mkdirs();
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
// 得到所有的文件:
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem file = (FileItem)i.next();
// 获得文件名,这个文件名是用户上传时用户的绝对路径:
String sourcefileName = file.getName();
if(sourcefileName!=null&&(sourcefileName.endsWith(".jpg")||sourcefileName.endsWith(".gif"))) {
// 在这里可以记录用户和文件信息,生成上传后的文件名
String destinationfileName=null;
Random rd = new Random();
Calendar time = Calendar.getInstance();
if(sourcefileName.endsWith(".jpg")){
destinationfileName=String.valueOf(time.get(Calendar.YEAR))
+ String.valueOf(time.get(Calendar.MONTH))
+ String.valueOf(time.get(Calendar.DAY_OF_MONTH))
+ String.valueOf(time.get(Calendar.HOUR_OF_DAY))
+ String.valueOf(time.get(Calendar.MINUTE))
+ String.valueOf(time.get(Calendar.SECOND))
+ String.valueOf(rd.nextInt(100)) + ".jpg";
}else if(sourcefileName.endsWith(".gif")){
destinationfileName=String.valueOf(time.get(Calendar.YEAR))
+ String.valueOf(time.get(Calendar.MONTH))
+ String.valueOf(time.get(Calendar.DAY_OF_MONTH))
+ String.valueOf(time.get(Calendar.HOUR_OF_DAY))
+ String.valueOf(time.get(Calendar.MINUTE))
+ String.valueOf(time.get(Calendar.SECOND))
+ String.valueOf(rd.nextInt(100)) + ".gif";
}
File f1=new File(uploadPath+ destinationfileName);
file.write(f1);
out.print(sourcefileName+"成功上传!") ;
out.print("<img src="+imagePath+"upload/images/"+destinationfileName+">");
}else{
out.println("上传文件出错,只能上传 *.jpg , *.gif");
}
}
// 跳转到上传成功提示页面
}
catch(Exception e) {
// 可以跳转出错页面
}
out.flush();
out.close();
%>

  

最新文章

  1. oracle 9i相关问题
  2. 设计模式:状态模式(State)
  3. Android-Opencv开发(一)配置环境
  4. 《Linear Algebra and Its Applications》-chaper1-向量方程、矩阵方程和线性方程组
  5. mvc和webapi同一解决方案调试办法
  6. 给SharePoint页面加入自己定义页脚Custom footer
  7. Memcached 学习笔记(二)——ruby调用
  8. mybatis 详解(九)------ 一级缓存、二级缓存
  9. 基于Spring Aop实现类似shiro的简单权限校验功能
  10. jdbc连接数据库,中文出现乱码的问题
  11. 【高并发解决方案】7、一致性hash解读
  12. CentOS 5.5 防火墙开启、关闭以及开放指定端口
  13. 继承方法--&gt;最终模式
  14. java中线程和并发面试题
  15. Oracle中的锁
  16. float浮动的一些基础常识
  17. 基于ArcGIS for Server的服务部署分析 分类: ArcGIS for server 云计算 2015-07-26 21:28 11人阅读 评论(0) 收藏
  18. python实战===一键刷屏
  19. AutoLayout自动布局,NSLayoutConstraint 视图约束使用
  20. flask+blueprint路由配置

热门文章

  1. SSIS 学习之旅 第一个SSIS 示例(二)
  2. JOIN从句
  3. markdown 语法规则
  4. 【LOJ】#2672. 「NOI2012」魔幻棋盘
  5. USACO 6.3 Fence Rails(一道纯剪枝应用)
  6. jenkins发邮件问题
  7. span 超出内容自动换行
  8. MXNet——symbol
  9. Keras/tensorflow出现‘Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.1.14’错误的解决办法
  10. OptParse选项工具模块