2

このようにjspにダウンロードオプションがあります

<a href='<c:url value="/licensing/download.sp?name=${namelist.name}&downloadUrl=${namelist.url}"/>'>

<img src="/images/download.gif" alt="Download" border="0" align="right">

上記の「url」はファイルの場所で、name はファイル名です。jsp iam でダウンロード オプションをクリックすると、コントローラーでコントローラー メソッド ダウンロードが呼び出されます。

public ModelAndView download(HttpServletRequest request, HttpServletResponse response, DevTechBean devTechBean) throws Exception {
        cat.debug("MySuiteListController: download: begin");
        ModelAndView modelView = super.handleLicensingRequest(request, response);
        String name = request.getParameter("name");

        String url1 = request.getParameter("downloadUrl");
        cat.debug(" download: url ="+url1);

        String downloadurl1="https://my.net:8869"+url1;
        cat.debug(" download: downloadurl ="+downloadurl1);
    try{
        URL url = new URL(downloadurl1);  
        //response.setHeader("Content-Type", "text/csv");  
        response.setHeader("Content-disposition", "attachment;filename="+name);
        URLConnection connection = url.openConnection();
        InputStream stream = connection.getInputStream();
        BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
        int len;
        byte[] buf = new byte[1024];
        while ((len = stream.read(buf)) > 0) {
          outs.write(buf, 0, len);
        }
        outs.close();
    }
    catch (MalformedURLException e) { 
        cat.error("Error occurrred in url");

    } 
    catch (IOException e) { 
        cat.error("Error occurrred ");

    }
        String viewName = "swl_download";
    modelView.setViewName(viewName);
return modelView;       

}

しかし、ダウンロードをクリックすると、ファイルが見つからないという例外が発生します。問題は url の値が原因であると考えています。上記の iam の値は downloadurl=/files/download/hai.txt です

私が与えるとき

<a href="${namelist.url}"/>
<img src="/images/download.gif" alt="Download" border="0" align="right"></a><br/><br/></td>

クリックすると、ブラウザでファイルが開かれ、URL https://my.net:8869//files/download/hai.txtが表示されます(ただし、href の場合は、このリンクのみを提供する "/files/download/hai.txt"は使用しないでください)リンク全体がどのように来るかを知っています。

ただし、このようなリンクを指定して、そのファイルをポップアップとして開くためのコントローラーを呼び出す場合。

<a href='<c:url value="/download.sp?name=${namelist.name}&downloadUrl=${namelist.url}"/>'>

ファイルが見つからないという例外が発生しています。downloadUrl.soを行うのは当然だと思いますので、上記のように追加しました

String downloadurl1="https://my.net:8869"+url1;

しかし、ファイルが見つからないという例外が発生しています。これを解決するのを手伝ってください。

4

2 に答える 2

0

これは単なる疑似コードです。必要に応じて変更してください。

 InputStream is = getClass().getResourceAsStream("filename");

最初に、 getClass() がどのディレクトリを指しているかを調べてみてください (確かではありませんが、アプリの HOME である必要があります)。そうでない場合は、ファイルを同じ場所に配置します。

これが役立つことを願っています。 ソース

于 2012-06-12T06:43:27.093 に答える