您的位置:首页 > 其它

common-fileUpload上传

2011-08-01 22:18 323 查看
=======================jsp页面======================

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

<form action="executeUpload.jsp" method="post" enctype="multipart/form-data">

your file:<input type="file" name="fileName"/><br/>

上传:<input type="submit" value="上传">

</form>

</body>

</html>

============================后台处理上传==========================

<%

//实例化工厂

DiskFileItemFactory factory=new DiskFileItemFactory();

//设置上传工厂的限制

factory.setSizeThreshold(1024*1024*20);

//设置上传的存放处

//---1:直接存放到项目根目录

//factory.setRepository(new File(request.getRealPath("/")));

//---2:存放到指定的文件目录

File file=new File(request.getRealPath("/")+"userFile");

if(!file.exists()){

file.mkdirs();

}

factory.setRepository(file);

//创建上传文件的类ServletFileUpload是主要的

ServletFileUpload upload=new ServletFileUpload(factory);

//设置上传文件的大小

upload.setSizeMax(1024*1024*20);

//处理HTTP请求,items是所有表单项

List items=upload.parseRequest(request);

//遍历所有表单项

for(Iterator it=items.iterator();it.hasNext();){

FileItem item=(FileItem)it.next();

//如果表单项是普通文本项

if(item.isFormField()){

String name=item.getFieldName();

String value=item.getString("GBK");

System.out.println("name=value:"+name+"="+value);

}else{

//取得文件表单域的名称

String fieldName=item.getFieldName();

//取得文件名

String fileName=item.getName();

//取得文件类型

String contentType=item.getContentType();

//上传文件

FileOutputStream write=new FileOutputStream(

request.getRealPath("/")+"userFile/"+

System.currentTimeMillis()+

fileName.substring(fileName.lastIndexOf("."),fileName.length())

);

//如果要上传的文件在内存中已经存在

if(item.isInMemory()){

write.write(item.get());

}else{

//得到输入流

InputStream is=item.getInputStream();

int len=0;

byte[] bytes=new byte[1024];

while(true){

len=0;

len=is.read(bytes);

if(len<1)

break;

write.write(bytes,0,len);

}

is.close();

write.flush();

write.close();

}

}

}

%>

===========注意用此方法需要两个jar包:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: