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 上传页面代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
//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 后台处理页面
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 |
<%@ 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();%> |
jsp中简易版本的图片上传程序,布布扣,bubuko.com
原文:http://www.cnblogs.com/haore147/p/3617999.html