我通过struts2文件上传拦截器上传用户个人资料图片。上传图片后,我想将其保存在webapp / upload / images文件夹下的webapp中。我使用以下代码来执行此操作。
public String uploadPhoto() {
try {
String filePath = servletRequest.getContextPath() + "/uploads/images";
System.out.println("Server path:" + filePath);
File fileToCreate = new File(filePath, this.userImageFileName);
FileUtils.copyFile(this.userImage, fileToCreate);
} catch (Exception e) {
e.printStackTrace();
addActionError(e.getMessage());
return INPUT;
}
return SUCCESS;
}
但我收到了以下错误
Server path:/picvik/uploads/images
java.io.IOException: Destination '/picvik/uploads/images/one.jpg' directory cannot be created
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:777)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:731)
at com.picvik.action.ChangePhotoAction.uploadPhoto(ChangePhotoAction.java:28)
请纠正我的错误。以及如何实现这一目标。我基本上想在我的webapp中保存所有用户个人资料图片:webapp / uploads / images。
答案 0 :(得分:1)
这很简单,你不能使用相对路径创建文件,你应该使用它的真实路径:
String filePath = servletRequest.getContextPath().getRealPath("/uploads/images");
那应该没问题。