我有一个简单的表与下载文件链接..从Servlet下载文件 - Chrome警告+下载后如何重定向用户?
一切似乎工作正常,当我点击下载,文件被发现在硬盘上,并提供给用户。
我的问题是,当我检查铬我看到:
Resource interpreted as Document but transferred with MIME type application/octet-stream: "http://localhost:8080/fus-app/myUploadedFiles".
它为什么会这么说?
相关的代码我已经是:
httpServletResponse.setContentType("application/octet-stream");
httpServletResponse.setHeader("Content-Disposition", "attachment; filename=\"" + fileNameOnSystem + "\"");
而且奖金的问题:
文件下载后,用户仍然可以看到该页面的表格,但我想重定向到一个不同的页面。我怎样才能做到这一点?
response.sendRiderect()
似乎不起作用。
编辑:这是我提供的下载链接到用户:
<form method="post" action="<%= request.getServletContext().getContextPath() +"/myUploadedFiles" %>">
<input type="hidden" name="fileNameOnSystem" value="<%= rset.getString("fileNameOnSystem") %>" />
<button type="submit" class="btn btn-default" />Download File </button>
</form>
谢谢您的回答,我已经编辑我的问题。实际上该文件位于驱动器的某个位置,所以我必须提供来自servlet的文件,我不能直接链接到该文件。 –
系统上的文件名称类似于:test1234.pdf,并且我知道它位于哪个目录(如C:\ appuser \ test1234.pdf),因此我可以提供该文件。所以我只能提供某种参数给servlet,然后我放弃文件。 –
您应该只能提供该servlet处理的URL。客户端不知道它是否是实际的文件,或者您只是生成随机位。因此,如果您的servlet处理woogie.com/somefile,则仍然可以在您的网页上放置:'Export'。 – sdanzig