燃眉之急!sturt2的action中获取不到SWFUpload组件提交的request中的文件对象

是这样的,我用servlet接受到request的值的话:主要是这句话
List<?> items = upload.parseRequest(request);
拿到文件对象列表。
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);//10M
// 设置临时文件存储位置
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置单个文件的最大上传值
upload.setFileSizeMax(10002400000l);//100M
// 设置整个request的最大值
upload.setSizeMax(10002400000l);//1000M
upload.setHeaderEncoding("UTF-8");
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHH");
String time = formatter.format(new Date());
String day = time.substring(0, 7);
String timeDetail = time.substring(8);
String ftpDirectory = "H:\\upload\\"+day+"\\"+timeDetail;
try {
List<?> items = upload.parseRequest(request); FileItem item = null;
String fileName = null;
for (int i = 0 ;i < items.size(); i++){
item = (FileItem) items.get(i);
fileName = item.getName();
InputStream fis = item.getInputStream();
// 保存文件
if (!item.isFormField() && item.getName().length() > 0) {
this.uploadFileByApacheByBinary(ftpDirectory,fis,fileName);
fis.close();
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}


然而如果我用struts2的action拿request中的内容话,
List<?> items = upload.parseRequest(request);
就拿不到

 public class FileUploadAction extends ActionSupport implements ServletRequestAware{
private static final long serialVersionUID = -7825355637448948879L;
private String server = "127.0.0.1";
private int port = 21;
private String userName = "dahong";
private String userPassword = "dh";
FTPClient ftpClient = null;
public FileUploadAction(){
try {
ftpClient = new FTPClient();
ftpClient.connect(server, port);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
HttpServletRequest request = null;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public String execute() throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);//10M
// 设置临时文件存储位置
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置单个文件的最大上传值
upload.setFileSizeMax(10002400000l);//100M
// 设置整个request的最大值
upload.setSizeMax(10002400000l);//1000M
upload.setHeaderEncoding("UTF-8");
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHH");
String time = formatter.format(new Date());
String day = time.substring(0, 7);
String timeDetail = time.substring(8);
String ftpDirectory = "H:\\upload\\"+day+"\\"+timeDetail;
System.out.println("ftpDirectory=="+ftpDirectory);
try {
List<?> items = upload.parseRequest(request); FileItem item = null;
String fileName = null;
for (int i = 0 ;i < items.size(); i++){
item = (FileItem) items.get(i);
fileName = item.getName();
InputStream fis = item.getInputStream();
// 保存文件
if (!item.isFormField() && item.getName().length() > 0) {
this.uploadFileByApacheByBinary(ftpDirectory,fis,fileName);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}

}


求助路过的大侠伸出援手
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值