我可以使用struts2框架在我的webapp上传图片,但我无法理解路径。
如何将图像的路径作为URL获取,以便我可以在<img src="url"/>
中使用它进行进一步处理。
这是我的动作类源代码,我已经提到了注释中返回的URL,但URL对我没有任何意义。如何将其解密为实际的URL?
public class AddItemAction extends ActionSupport implements
ServletContextAware {
@Override
public void setServletContext(ServletContext arg0) {
// TODO Auto-generated method stub
}
File pic;
String picContentType;
String picFileName;
public File getPic() {
return pic;
}
public void setPic(File pic) {
this.pic = pic;
}
public String getPicContentType() {
return picContentType;
}
void setPicContentType(String picContentType) {
System.out.println("Setting conteent tuype" + picContentType);
this.picContentType = picContentType;
}
public void setPicFileName(String picFileName) {
this.picFileName = picFileName;
}
public String getPicFileName() {
return picFileName;
}
public String execute() {
File file = getPic();
String strFinalFullPathFileName = file.getAbsolutePath() + File.separator + picFileName;
System.out.println(strFinalFullPathFileName);
// This is the path returned
/*
* /Users/..../Catalina/localhost/.../upload_584d2719_13d5fdf593d__8000_00000000.tmp/IMG_20120526_083438.jpg
*
*
*/
return SUCCESS;
}
}
答案 0 :(得分:0)
上传的工件应存储在外部 Web应用程序结构中。
此外,默认情况下,文件上载拦截器会删除在上载过程中创建的临时文件。应关闭该文件,或者将文件复制到已知位置,以便它们可以(a)通过操作流回,或者(b)如果您设置容器以提供静态资产,则可以直接提供正常的网络结构。
答案 1 :(得分:0)
好像您要将文件上传到临时文件夹,您应该做的是将此文件移至您的网络应用程序内的文件夹
你使用request.getServletContext()。getRealPath(YOUR_PATH)来获取移动文件的路径
YOUR_PATH就像“/uploadimage/img.png”=&gt; uploadimage直接作为webapp中的文件夹