有关用common-fileupload组件上传文件的问题?
用common-fileupload写的文件上传服务器,常用的文本文件格式可以上传,但是象exe,rar等有些格式的文件不能上传,jsp文件不能解析找不这个文件路径,请问有什么方法可以来设置文件的上传类型吗?
原代码如下:
<%@ page contentType= "text/html; charset=GBK " %>
<%@ page import= "java.util.List,java.util.Iterator "%>
<%@ page import= "org.apache.commons.fileupload.* "%>
<%@ page import= "java.io.File "%>
<html>
<head> <title> upload </title> </head>
<body>
<%
DiskFileUpload dfu=new DiskFileUpload();
//设置上传数据的最大大小为10M。
dfu.setSizeMax(0xA00000);
//设置内存缓冲区的阀值为512K。
dfu.setSizeThreshold(0x80000);
//设置临时存储文件的目录为E:\fileupload。
dfu.setRepositoryPath( "E:\\fileupload ");
//得到FileItem对象的列表。
List fileItems=dfu.parseRequest(request);
Iterator it = fileItems.iterator();
%>
<table cellpadding= "3 " border= "1 ">
<%
//依次处理每个上传的文件
while (it.hasNext())
{
FileItem item = (FileItem) it.next();
//判断是否是文件域的表单信息
if (!item.isFormField())
{
String name = item.getName();
long size = item.getSize();
if((name==null || name.equals( " ")) && size==0)
continue;
%>
<tr>
<td> <%=item.getName()%> </td>
<td> <%=item.getSize()%> </td>
</tr>
<%
//保存上传的文件到指定的目录
File dir=new File( "E:\\UploadFile ");
//如果浏览器传送的文件名是全路径名,则取出文件名。
int index=name.lastIndexOf(File.separator);
if(index> 0)
name=name.substring(index+1,name.length());
File file=new File(dir,name);
item.write(file);
}
else
{
%>
<tr>
<td> <%=item.getFieldName()%> </td>
<td> <%=item.getString()%> </td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
[解决办法]
建议你用jspSmartUpload控件,有设置文件类型的功能,非常好用.