81,092
社区成员
发帖
与我相关
我的任务
分享
方法1:
利用 Oreilly MultiPartRequest
使用方法:
File.htm
<html>
<head>
<title>File Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>
<body bgcolor="#FFFFFF" text="#000000"><p><font size="5"color="#FF0000">
<b>上传示例</b></font></p>
<form name="Form1" enctype="multipart/form-data" method="post" action="File.jsp">
<p>文件 1: <input type="file"name="File1" size="20" maxlength="20"> </p>
<p>描述: <input type="text" name="File1" size="30" maxlength="50"> </p>
<p>文件 2: <input type="file" name="File2" size="20" maxlength="20"> </p>
<p>描述: <input type="text" name="File2" size="30" maxlength="50"> </p>
<p>文件3: <input type="file" name="File3" size="20" maxlength="20"> </p>
<p>描述: <input type="text" name="File3" size="30" maxlength="50"> </p>
<p> <input type="submit"value="上传"> <input type="reset" value="清除"> </p>
</form>
</body>
</html>
File.jsp
<%@ page language="java" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%!
// 上传文件到服务器的C:\Upload目录中
// 限制上传文件大小为 5 MB
String saveDirectory = "C:\\Upload\\";
int maxPostSize = 5 * 1024 * 1024 ;
// 定义上传文件內容的类型
String FileDescription[] = {null,null,null};
// 定义上传文件名称
String FileName = null;
// 计算上传文件个数
int count = 0 ;
%>
<html>
<head>
<title>File Upload</title>
</head>
<%
// 创建一个新的MultipartRequest 的组件,multi
MultipartRequest multi = new MultipartRequest(request , saveDirectory , maxPostSize );
%>
<body>
<%
// 判断是否取得文件描述,
// 若有,将数据給FileDescription
// 若无,將FileDescription的內容设为空白字串
if ( multi.getParameter("File1") != null )
{
FileDescription[0] = multi.getParameter("File1");
}
else
{
FileDescription[0] = "";
}
if ( multi.getParameter("File2") != null )
{
FileDescription[1] = multi.getParameter("File2");
}
else
{
FileDescription[1] = "";
}
if ( multi.getParameter("File3") != null )
{
FileDescription[2] = multi.getParameter("File3");
}
else
{
FileDescription[2] = "";
}
// 获取所有上传的文件类型和名称
Enumeration filesname = multi.getFileNames();
while (filesname.hasMoreElements())
{
String name = (String) filesname.nextElement();
FileName = multi.getFilesystemName(name);
File f = multi.getFile(name);
String ContentType = multi.getContentType(name);
if (FileName != null)
{
count ++;
%>
<font color="red">你上传的第<%= count %>个文件:</font><br>
文件名称:<%= FileName %><br>
文件类型:<%= ContentType %><br>
文件描述:<%= FileDescription[count-1] %><br><br>
<%
} // end if
} // end while
%>
您共上传<font color="red"><%= count %></font>个文件
</body>
</html>
说明:MultipartRequest 是O'Reilly公司开发的开源工具
下载地址:http://www.servlets.com/resources/com.oreilly.servlet
开始先取得文件名,即input type="file" name="xxxx" >中的xxxx,根据File.htm中的内容,filesname的內容分別由File1、File2和File3组成。再使用filesname.nextElement(),将他们一一取出,存入到name的变量中,而name的内容就是File1或File2或File3,最后再利用name,取到真正的文件名称和类型、数目等。