通过java/servlet使文档可供下载

通过java/servlet使文档可供下载,java,download,document,Java,Download,Document,我需要知道java/servlet中是否有一种方法可以使存储在数据库中的文档(doc、pdf)以请求的方式下载给用户(请参见下文) 例如,有一个网页和其中的文档链接 现在是这样做的: 如果用户单击该链接,则会打开一个新的空白窗口,其中会显示“下载”对话框,用户可以下载文档,但该空白窗口保持打开状态 用户必须手动关闭它 但希望这样做: 如果用户单击该链接而不是直接停留在该页面上,则会显示一个下载对话框,要求他们保存文件 servlet url处理文档的下载,该文档负责提取文档表单数据库,并可供用户

我需要知道java/servlet中是否有一种方法可以使存储在数据库中的文档(doc、pdf)以请求的方式下载给用户(请参见下文)

例如,有一个网页和其中的文档链接

现在是这样做的: 如果用户单击该链接,则会打开一个新的空白窗口,其中会显示“下载”对话框,用户可以下载文档,但该空白窗口保持打开状态 用户必须手动关闭它

但希望这样做: 如果用户单击该链接而不是直接停留在该页面上,则会显示一个下载对话框,要求他们保存文件

servlet url处理文档的下载,该文档负责提取文档表单数据库,并可供用户下载


感谢您的时间和努力

我想知道您的链接html中是否没有以下内容:

<a href="/foo" **target="_blank"** ....>download</href>
下载

否则,它应该可以正常工作。

我想知道您的链接html是否没有如下内容:

<a href="/foo" **target="_blank"** ....>download</href>
下载

否则,它应该可以正常工作。

你需要从你的
和an中删除
target=“\u blank”
,以获得一些见解。

你需要从你的
和an中删除
target=“\u blank”
,以获得一些见解。

这是IE中的一个缺陷,它取决于几个方面,内容类型就是其中之一。几年前我们也遇到过同样的问题,但我不记得正确的解决方案了,只是我们为此奋斗了很长一段时间。试试这个:

  • 使用正确的内容类型(
    application/pdf
  • 如果这不起作用,请使用错误的文件类型(如
    应用程序/octet-stream
    ),它应该告诉IE不要使用该文件。不过,文件扩展名可能有问题
  • 发送或不发送正确的文件大小
  • 检查您正在使用的分块模式

其中一件事让我表现得很好。祝你好运。

这是IE中的一个bug,它取决于几个方面,内容类型就是其中之一。几年前我们也遇到过同样的问题,但我不记得正确的解决方案了,只是我们为此奋斗了很长一段时间。试试这个:

  • 使用正确的内容类型(
    application/pdf
  • 如果这不起作用,请使用错误的文件类型(如
    应用程序/octet-stream
    ),它应该告诉IE不要使用该文件。不过,文件扩展名可能有问题
  • 发送或不发送正确的文件大小
  • 检查您正在使用的分块模式

其中一件事让我表现得很好。祝您好运。

您需要在servlet中添加以下标题,使其成为可下载的内容,以便浏览器不会试图显示它

String value = "attachment;filename=\"" + URLEncoder.encode(filename, "UTF-8") +'"';
response.setHeader("Content-Disposition", value);
response.setHeader("Content-Transfer-Encoding", "binary");

文件名是建议的文件名,用户可以更改它。

您需要在servlet中添加以下标题,使其成为可下载的内容,以便浏览器不会试图显示它

String value = "attachment;filename=\"" + URLEncoder.encode(filename, "UTF-8") +'"';
response.setHeader("Content-Disposition", value);
response.setHeader("Content-Transfer-Encoding", "binary");

文件名是建议的文件名,用户可以更改它。

谢谢,但链接没有使用目标属性,但是类似的,它会打开另一个窗口,如弹出窗口。链接触发javascript函数,打开处理文档下载的页面(servlet url)但是,如果我删除弹出窗口,当前页面将变为空白,但是否有一种方法使当前页面保持原样,只显示文件下载框谢谢,但链接没有使用目标属性,但是类似的,它会打开页面作为另一个窗口,如弹出,链接触发打开页面的javascript功能它处理文档下载(servlet url)但是,如果我删除弹出窗口,当前页面将变为空白,但是否有一种方法使当前页面保持原样,只显示文件下载框谢谢,但链接没有使用目标属性,但是类似的,它会打开页面作为另一个窗口,如弹出,链接触发打开页面的javascript功能它处理文档下载(servlet url)但是如果我删除了弹出窗口,那么当前页面将变为空白,我不希望出现这样的情况,即当前页面保持原样,只会出现文件下载框谢谢,但链接没有使用目标属性,但是的,类似于它打开页面作为另一个窗口,如弹出链接触发javascript函数,用于打开处理文档下载的页面(servlet url)但是如果我删除弹出窗口,那么当前页面将变为空白,我不希望当前页面保持原样,只会出现文件下载框,这听起来不错,但它会显示对话框窗口,并要求用户选择文档的ost是msword(.doc)但问题是我需要打开servlet url,以便页面提取文档fomr数据库并使其可供用户下载,但该空白页面在用户下载后保持打开状态,正如上面的帮助人员所建议的那样,不要打开另一个窗口,但这将使我的当前页面成为当前servlet页面blank谢谢你提示如果浏览器打开一个窗口,那么它认为它可以显示内容。使用不同的内容类型,并按照ZZ Coder的建议播放响应的标题。这听起来不错,但它显示了对话框窗口,并要求用户选择文档的ost是msword(.doc)但问题是我需要打开servlet url,以便页面提取文档fomr数据库并使其可供用户下载,但该空白页面在用户下载后保持打开状态,正如上面的帮助人员所建议的那样,不要打开另一个窗口,但这将使我的当前页面成为当前servlet页面空白谢谢你提示如果浏览器打开一个窗口,它会认为