Como baixar o arquivo da url usando o Spring MVC?
Eu estou tendo opção de download no meu jsp como este
<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">
No "url" acima é a localização do arquivo e nome é o nome do arquivo.No clique da opção de download em jsp iam chamando o download do método do controlador, no controlador
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;
}
Mas quando clico em download estou recebendo exceção de arquivo não encontrado. Eu estou pensando que o problema é devido ao valor do URL. No iam acima tendo valor de downloadurl = / files / download / hai.txt
quando eu dou
<a href="${namelist.url}"/>
<img src="/images/download.gif" alt="Download" border="0" align="right"></a><br/><br/></td>
no clique o arquivo está abrindo no navegador com o urlhttps://my.net:8869//files/download/hai.txt(but aqui para href iam dando apenas este link "/files/download/hai.txt" não sei como o link inteiro está chegando.
mas se der link como este para chamar o controlador para abrir esse arquivo como pop-up.
<a href='<c:url value="/download.sp?name=${namelist.name}&downloadUrl=${namelist.url}"/>'>
está recebendo exceção de arquivo não encontrado. Eu acho que é devido que fazer downloadUrl.so eu adicionei assim no acima
String downloadurl1="https://my.net:8869"+url1;
Mas eu estou recebendo arquivo não encontrar exceção.Por favor, ajude-me a resolver isso.