struts 2文件上传和保存问题

时间:2011-03-19 12:04:22

标签: struts2

文件已成功上传,但未保存

这是我的动作类中的功能

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";
}

我使用断点并且所有语句都成功执行

但我在上下文根目录中看不到任何文件

2 个答案:

答案 0 :(得分:0)

萨米特!!

Struts2具有内置文件上传功能,您可以非常轻松地使用它。使用拦截器构建上传文件。 这是相同

的链接

File Upload

这个拦截器将为您提供文件内容,现在在Action类中,您可以使用IO系统保存文件。

另请注意,struts2会将文件放在临时上下文中,当以相反的顺序调用拦截器时它会清理上下文,因此请确保使用IO保存上传的文件

答案 1 :(得分:0)

我找到了解决方案,我设置的路径不正确

而不是

HttpServletRequest request = ServletActionContext.getRequest();
String filePath = request.getContextPath();

应该是

String filePath = ServletActionContext.getServletContext().getRealPath("/");