gpt4 book ai didi

java - 如何使用 Spring MVC 从 url 下载文件?

转载 作者:行者123 更新时间:2023-11-30 11:43:58 25 4
gpt4 key购买 nike

我的 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中点击下载选项时,我调用 Controller 方法下载,在 Controller 中

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>

单击后,文件将在浏览器中打开,网址为 https://my.net:8869//files/download/hai.txt(but这里的 href iam 只给出了这个链接“/files/download/hai.txt”不知道整个链接是怎么来的。

但是如果给出这样的链接来调用 Controller 打开该文件作为弹出窗口。

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

它正在获取文件未找到异常。我认为是因为 downloadUrl.so 我在上面添加了这样的内容

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

但我收到文件未找到异常。请帮我解决这个问题。

最佳答案

试试这个:

@RequestMapping(value="/viewAttach", method = RequestMethod.GET)
public ModelAndView viewAttach(@RequestParam(value="article_id", required = true) String article_ref, HttpSession session, HttpServletResponse response)
{

/* *** Check Session *** */
try {

// Direclty from pier.content.GetContent written by ang94402

URL url = new URL(binaryURL);
response.setHeader("Content-disposition", "attachment;filename=" + binary.getName());

//Set the mime type for the response
response.setContentType("application/pdf");

// URLConnection connection = url.openConnection();
InputStream is = url.openStream();

BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
int len;
byte[] buf = new byte[1024];
while ( (len = is.read(buf)) > 0 ) {
outs.write(buf, 0, len);
}
outs.close();

} catch (MalformedURLException e) {
logger.error("Error ModelAndView.viewMain - MalformedURLException : " + e.toString() + " -- " + e.getStackTrace()[0].toString());
return null;
} catch (IOException e) {
logger.error("Error ModelAndView.viewMain - IOException : " + e.toString() + " -- " + e.getStackTrace()[0].toString());
return null;
}


return null;

}

关于java - 如何使用 Spring MVC 从 url 下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com