各位大侠,我在按照 http://www.techrss.cn/html/2009/02-05/206680.htm 的示例做多文件上传个过程中,出现了类构造异常的错误:
[code="java"]
importjava.io.*;
import com.opensymphony.xwork2.ActionSupport;
public class UploadMoreAction extends ActionSupport
{
private java.util.List<File>uploads;
private java.util.List<String>fileNames;
private java.util.List<String>uploadContentTypes;
public java.util.List<String>getUploadFileName()
{
returnfileNames;
}
public voidsetUploadFileName(java.util.List<String>fileNames)
{
this.fileNames=fileNames;
}
public java.util.List<File>getUpload()
{
returnuploads;
}
public void setUpload(java.util.List<File>uploads)
{
this.uploads=uploads;
}
public void setUploadContentType(java.util.List<String>contentTypes)
{
this.uploadContentTypes=contentTypes;
}
public java.util.List<String>getUploadContentType()
{
returnthis.uploadContentTypes;
}
public String execute()throwsException
{
if(uploads!=null)
{
inti=0;
for(;i<uploads.size();i++)
{
java.io.InputStreamis=newjava.io.FileInputStream(uploads.get(i));
java.io.OutputStreamos=newjava.io.FileOutputStream("d:upload"+fileNames.get(i));
bytebuffer=newbyte[8192];
intcount=0;
while((count=is.read(buffer))>0)
{
os.write(buffer,0,count);
}
os.close();
is.close();
}
}
returnSUCCESS;
}
}
[/code]
在执行下面这句:
[code="java"]
java.io.InputStreamis=newjava.io.FileInputStream(uploads.get(i));
[/code]
出现了下面的异常:
java.lang.ClassCastException: java.lang.String
我debug时发现,uploads类型变成了 XWorkList 类型,而不是前面的 File 类型。这个 list 里存储有上传的多个文件的本地路径,如:d:\My Documents\My Pictures\3.jpg,d:\My Documents\My Pictures\4.jpg, 但就是到这儿出错了。
不知道各位大侠有没有碰到相类似的问题?望指点,多谢了。
[b]问题补充:[/b]
上面的 uploads 存储的是本地上传文件的地址,发现是我的
而且运行到 [code="java"]
java.io.InputStream is=newjava.io.FileInputStream(uploads.get(i));
[/code]
依然报错:
java.lang.ClassCastException: java.lang.String
为什么 uploads 里存储的不是 File 类型呢?
[b]问题补充:[/b]
我使用的文件处理方式是:
[code="java"]
[/code]