文件已成功上传,但未保存
这是我的动作类中的功能
public String uploadPhoto()
{
HttpServletRequest request = ServletActionContext.getRequest();
String filePath = request.getContextPath();
File fileToCreate = new File(filePath, this.userImageFileName);
try {
FileUtils.copyFile(this.userImage, fileToCreate);
Users user = userDao.findByUsername((String)session.get("username"));
user.setPhotoName(filePath+userImageFileName);
userDao.save(user);
} catch (IOException e) {
addActionError(e.getMessage());
e.printStackTrace();
return INPUT;
}
return "UPLOADED";
}
我使用断点并且所有语句都成功执行
但我在上下文根目录中看不到任何文件
答案 0 :(得分:0)
萨米特!!
Struts2具有内置文件上传功能,您可以非常轻松地使用它。使用拦截器构建上传文件。 这是相同
的链接这个拦截器将为您提供文件内容,现在在Action类中,您可以使用IO系统保存文件。
另请注意,struts2会将文件放在临时上下文中,当以相反的顺序调用拦截器时它会清理上下文,因此请确保使用IO保存上传的文件
答案 1 :(得分:0)
我找到了解决方案,我设置的路径不正确
而不是
HttpServletRequest request = ServletActionContext.getRequest();
String filePath = request.getContextPath();
应该是
String filePath = ServletActionContext.getServletContext().getRealPath("/");