-1

我可以使用 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;
    }
}
4

2 回答 2

0

上传的工件应存储Web 应用程序结构之外。

另外,默认情况下,文件上传拦截器会删除上传过程中创建的临时文件。这应该被关闭,或者文件应该被复制到一个已知的位置,这样它们就可以(a)通过一个动作流回,或者(b)如果你将你的容器设置为在正常的网络结构。

于 2013-03-12T18:54:08.407 回答
0

好像您正在将文件上传到临时文件夹,您应该做的是将此文件移动到您的网络应用程序内的文件夹中

你的情况下使用 request.getServletContext().getRealPath(YOUR_PATH) 来获取移动文件的路径

YOUR_PATH 类似于 "/uploadimage/img.png" => uploadimage 是直接在您的 webapp 中的文件夹

于 2013-03-12T18:54:20.893 回答