-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

ファイルを一時フォルダーにアップロードしているようです。このファイルを Web アプリ内のフォルダーに移動する必要があります。

あなたの場合は request.getServletContext().getRealPath(YOUR_PATH) を使用して、ファイルを移動するパスを取得します

YOUR_PATH は "/uploadimage/img.png" のようなものです => uploadimage は webapp の直接のフォルダーです

于 2013-03-12T18:54:20.893 に答える