gpt4 book ai didi

java - 如何获取从url下载的文件? (不要在浏览器中打开)

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:16 24 4
gpt4 key购买 nike

我是 java 新手。我需要下载 pdf/txt/.xls 或单击下载选项的任何文件。就我而言,我在数组列表中有某些值并在 jsp 中显示。在我的列表(名单)中我有

name=rahul
url=files/en/software/rahul.txt
name=roshan
url=files/en/software/roshan.pdf

当我迭代(名单)并在jsp中显示以上内容时,我的jsp

<td valign="top">${namelist.name}</td>

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

所以在我的 jsp iam 中,url 中有很多用户名和相应的文件。单击下载后,文件将在浏览器中使用 url 打开 http://www.xxx.com/files/en/software/roshan.pdf

但我希望将其打开为弹出窗口,要求用户另存为/打开选项。当将此 url 传递给 Controller ​​时,我仅获得值/files/en/software/roshan.pdf。我在他们建议使用的每个地方都搜索了相同的内容response.setHeader("Content-Disposition", "attachment;filename="+name);

所以我创建了一个名为 download 的 Controller ,点击下载后我映射了这样的 url

<a href='<c:url value="/download.sp?name=${namelist.name}&downloadUrl=${namelist.url}"/>'>
<img src="/images/download.gif" alt="Download" border="0" align="right"></a><br/><br/>

在我的 Controller 中。我不知道该怎么做,我是这样写的

public ModelAndView download(HttpServletRequest request, HttpServletResponse response) throws Exception {
cat.debug(" download: begin");
ModelAndView modelView = super.handleRequest(request, response);
String url = request.getParameter("downloadUrl");
String name = request.getParameter("name");
response.setHeader("Content-Disposition", "attachment;filename="+name);
String viewName = "swl_download";
modelView.setViewName(viewName);
return modelView;
}

上面打开的是同名的弹出窗口。我想在 Controller 中包含更多内容,以便单击下载时该文件应该与 url 中的文件相同(在上述 Controller 中包含/更改的内容)。请帮助我解决这个问题。感谢我提前帮助我。

最佳答案

需要查看 sql_download View 正在做什么。

一般来说,我在 View 本身中设置内容配置。所以我的自定义 AbstractView 实现看起来像:

response.setHeader("内容处置", "附件; filename="+fileName);response.setContentType("application/vnd.ms-excel");OutputStream out = response.getOutputStream();helperClass.exportDataToExcel(data, out);

内容类型也很重要,可以帮助您的浏览器选择正确的应用程序来加载文档。

您应该知道这些 header 只是对浏览器的建议,浏览器可以自由地以自己的方式解释它们。因此,您将无法强制所有浏览器显示“打开或保存”对话框。

希望这有帮助。

关于java - 如何获取从url下载的文件? (不要在浏览器中打开),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990176/

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