struts2中文件上传问题

packagecom.test.action;importjava.io.File;importjava.io.FileInputStream;importjava.io... package com.test.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sun.java_cup.internal.internal_error;

public class UploadAction extends ActionSupport {

private String user;
private String pass;
private List<File> file;
private List<String> fileFileName;
private List<String> fileContentType;

public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}

public List<File> getFile() {
return file;
}
public void setFile(List<File> file) {
this.file = file;
}
public List<String> getFileFileName() {
return fileFileName;
}
public void setFileFileName(List<String> fileFileName) {
this.fileFileName = fileFileName;
}
public List<String> getFileContentType() {
return fileContentType;
}
public void setFileContentType(List<String> fileContentType) {
this.fileContentType = fileContentType;
}
@Override
public String execute() throws Exception {
for(int i=0;i<file.size();++i)
{
InputStream is = new FileInputStream(file.get(i));
String root = ServletActionContext.getRequest().getRealPath("/upload");
File destFile = new File(root,this.getFileFileName().get(i));
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while((length = is.read(buffer)) > 0)
{
os.write(buffer,0,length);
}
is.close();
os.close();
}
return SUCCESS;
}

}
以上UploadAction测试没问题,但在upload文件夹下没有已上传的文件~~是哪儿出了问题??大虾们帮帮忙
展开
 我来答
回首难求曾经
2010-01-27 · TA获得超过169个赞
知道答主
回答量:93
采纳率:0%
帮助的人:96.8万
展开全部
你要学会用debug模式来调试自己的代码。把断点设置在 String root = ServletActionContext.getRequest().getRealPath("/upload"); 可以一步步查看每个变量和属性的值 ,这样更容易找到问题。
这里你需要查看root 和 destfile的值 这样很容易看出你得到的路径是否为你想要设置的路劲。
也可以用system.out.println(root) 打印到控制台看一下。
匿名用户
2010-01-25
展开全部
os.flush()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梁勃机采南
2019-09-30 · TA获得超过4229个赞
知道大有可为答主
回答量:3034
采纳率:29%
帮助的人:157万
展开全部
你的图片多大?struts2有个struts.multipart.maxSize属性,默认是2M,可能是你的图片大小超过了这个值,所以就传不了了。
可以加个struts.properties文件,里面写:struts.multipart.maxSize
=
10485760,这个是10M,一般都够了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钮发须古香
2019-03-31 · TA获得超过3669个赞
知道小有建树答主
回答量:3009
采纳率:25%
帮助的人:207万
展开全部
那是上传的临时文件,在上传之间生成,然后删除。
还有,上传的文件名都是由
*FileName
得到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式