2011-03-19 75 views
0

文件被上傳成功,但它是沒有得到保存Struts的文件上傳和保存問題

這是在我的動作類

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

我找到了解決辦法上傳的文件,我設置了不正確的路徑

而不是

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

應該

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

Sumit !!

Struts2構建了文件上傳功能,您可以非常輕鬆地使用該功能。使用攔截器中的上傳文件。 這裏是鏈接在同一

File Upload

這個攔截器將提供你的文件內容和現在的Action類的你的方法,你將如何使用IO系統保存文件。

還要注意的是struts2中將會把文件中的溫度範圍內,它會清理上下文時攔截器會以相反的順序被調用,所以請務必保存使用IO

+0

我做的確如此,我說圖像上傳正常,但是當我使用FileUtils.copyFile(this.userImage,fileToCreate)保存時;它沒有得到保存請在響應之前仔細閱讀問題 – 2011-03-19 15:09:11

+0

只需檢查由Struts2攔截器上傳的內容的大小,如果正確,則文件保存方式中存在一些問題.truts僅爲您提供上傳文件的方式並將其放置在溫度區域,如何保存不在其範圍內,只需檢查此方面,希望它能幫助您 – 2011-03-19 15:41:11