このように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;
しかし、ファイルが見つからないという例外が発生しています。これを解決するのを手伝ってください。