从 JavaServlet 下载文件 [重复]

     2023-05-07     267

关键词:

【中文标题】从 JavaServlet 下载文件 [重复]【英文标题】:Download file from JavaServlet [duplicate] 【发布时间】:2017-04-22 22:46:50 【问题描述】:

我有一个名为 DownloadFile 的 java servlet,在 Get 方法中我有一些代码可以从数据库中获取文件并在我导航到 url 时下载它

localhost:9080/myapp/DownloadFile 

但我不想让我的用户到这个页面去下载文件,所以在我的 javascript 中点击一个按钮我有这个

$scope.downloadTemplate = function()
    console.log("download template called");
    $.get("DownloadTemplate", function(responseText)    
        console.log(responseText)
    );

函数被调用,servlet 被调用但文件没有下载。为什么?这是相关的servlet代码

bytes = templateSet.getBytes("FILE");
            fileName = templateSet.getString("TEMPLATE_FILE_NAME");

            response.setContentType("application/octet-stream");
            response.setHeader("Content-Disposition",
                    "attachment;filename=" + fileName);

            ServletOutputStream out = response.getOutputStream();
            out.write(bytes);
            out.flush();
            out.close();

如何下​​载文件并让用户停留在下载按钮所在的页面上?

谢谢

【问题讨论】:

“不下载”是指console.log(responseText)命令没有在控制台打印其内容?请记住,您不能使用 AJAX 下载文件,您需要定期请求/页面重定向。 @JiriTousek 我确实看到它打印在控制台中,但文件没有下载到我的文件系统。那么我需要什么类型的请求呢?为什么不能用ajax做呢 可能重复:***.com/questions/33786773/…、***.com/questions/4545311/…、***.com/questions/20830309/… 【参考方案1】:

您不能使用 AJAX 下载文件。

如果您执行 AJAX,您会在提供的回调中获得响应。您的 Javascript 可以以任何喜欢的方式使用它,但不会触发浏览器中的下载。

浏览器在发送(整页)请求并收到指示响应包含文件而不是网站的标头时显示下载对话框。

如果您不想直接链接到文件,通常的做法是让 Javascript 将整个选项卡重定向到文件的 URL,例如 window.location.href = 'http://example.com/myfile';

【讨论】:

使用Java从HTTPS服务器下载文件[重复]

】使用Java从HTTPS服务器下载文件[重复]【英文标题】:DownloadfilefromHTTPSserverusingJava[duplicate]【发布时间】:2012-04-2511:28:05【问题描述】:我想从使用安全连接协议HTTPS的服务器下载文件。我可以在普通服务器上做到这一点,但是,... 查看详情

C#如何从url下载csv文件[重复]

】C#如何从url下载csv文件[重复]【英文标题】:C#Howtodownloadcsvfilefromurl[duplicate]【发布时间】:2020-11-1417:57:42【问题描述】:我知道这是一个愚蠢的问题,但我已经阅读了很多论坛,但没有什么对我不起作用。(“https://www.nasdaq.com... 查看详情

从同一网络C#中的另一台计算机下载文件[重复]

】从同一网络C#中的另一台计算机下载文件[重复]【英文标题】:DownloadingafilefromanothercomputerinsamenetworkC#[duplicate]【发布时间】:2017-12-2906:33:29【问题描述】:我在本地网络中有3台计算机,我需要一个C#程序从txt文件中读取要连接... 查看详情

从firebase函数获取云存储中文件的永久可公开下载URL [重复]

】从firebase函数获取云存储中文件的永久可公开下载URL[重复]【英文标题】:GetpermanentlypubliclydownloadableURLofafileincloudstoragefromfirebasefunctions[duplicate]【发布时间】:2021-12-2418:56:38【问题描述】:我想通过firebase函数获取GoogleCloud存储... 查看详情

PHP脚本允许用户从远程FTP服务器下载文件[重复]

】PHP脚本允许用户从远程FTP服务器下载文件[重复]【英文标题】:PHPscripttoallowsusertodownloadfilefromremoteFTPServer[duplicate]【发布时间】:2021-04-0819:29:24【问题描述】:我有一个带有公共IP的FTP服务器,用于与其他无需身份验证即可下载... 查看详情

如何从烧瓶服务器下载通过jquery / ajax请求的csv文件[重复]

】如何从烧瓶服务器下载通过jquery/ajax请求的csv文件[重复]【英文标题】:Howtodownloadacsvfilerequestedthroughjquery/ajaxfromflaskserver[duplicate]【发布时间】:2019-05-1310:22:32【问题描述】:我正在构建一个python烧瓶网络应用程序。我正在尝试... 查看详情

下载单个文件[重复]

】下载单个文件[重复]【英文标题】:Downloadsinglefile[duplicate]【发布时间】:2011-03-1221:13:51【问题描述】:如何从SVN存储库下载单个文件?例如:svncohttp://server.com/svn/trunk/test.filetest.filesvn:URL\'http://server.com/svn/trunk/test.filetest.file\'re... 查看详情

javaservlet中filter概念的实时用法是什么?[重复]

这个问题在这里已有答案: ServletvsFilter3回答 我是servlets的新手,帮我实时理解Filter概念?答案过滤器可帮助您拦截传入的请求和响应。请求过滤器可以:执行安全检查,重新格式化请求标头或正文,审计或... 查看详情

从其他项目调用java servlet [重复]

】从其他项目调用javaservlet[重复]【英文标题】:Calljavaservletfromotherproject[duplicate]【发布时间】:2018-08-2221:08:25【问题描述】:我有一个JavaWeb项目(演示1)在ApacheTomcat版本8.0.33上运行,该版本安装在Ubuntu14.04服务器上。现在我正... 查看详情

如何修复下载文件中没有数据[重复]

】如何修复下载文件中没有数据[重复]【英文标题】:Howtofixnodataindownloadedfile[duplicate]【发布时间】:2019-11-0119:07:27【问题描述】:我正在尝试从服务器下载文件,确切地说,是一个mp3文件。它下载得很好,我认为由于下载文件... 查看详情

将文件下载到内部存储 [重复]

】将文件下载到内部存储[重复]【英文标题】:DownloadFilesToInternalStorage[duplicate]【发布时间】:2014-05-3105:44:30【问题描述】:我的申请遇到了一些问题。我想下载文件,然后将它们保存到我的应用程序可绘制文件夹中,但由于应... 查看详情

使用 PHP 下载 FTP 文件 [重复]

】使用PHP下载FTP文件[重复]【英文标题】:FTPfiledownloadwithPHP[duplicate]【发布时间】:2021-12-2314:06:56【问题描述】:我正在尝试使用FTP在我的网页上制作一个下载按钮。但是当我尝试这样做时,下载的文件会保存到托管我的网站的... 查看详情

如何在 Python 中从 url 下载文件 [重复]

】如何在Python中从url下载文件[重复]【英文标题】:HowdodownloadafilefromurlinPython[duplicate]【发布时间】:2014-02-1104:49:32【问题描述】:我想在Pythonshell中下载一个文件,就像将文件下载到浏览器中一样。是的,我知道有多种方法,如... 查看详情

java示例代码_使用一个ajax请求从Javaservlet返回多个json对象

java示例代码_使用一个ajax请求从Javaservlet返回多个json对象 查看详情

将进度条添加到下载文件[重复]

】将进度条添加到下载文件[重复]【英文标题】:Addprogress-bartoDownloadfile[duplicate]【发布时间】:2018-07-2422:06:42【问题描述】:我正在实现一个ViewController来显示以前从我的服务器下载并存储在设备本地的PDF,它可以正常工作,但... 查看详情

从Docker中的主机系统访问文件[重复]

...无法在我的ubuntu18.04上安装该软件包。所以我从官方网站下载了docker文件,我想知道如何从docker访问我在主机系统上的.csv文件。谢谢【问题讨论】:【参考方案1】:你必须 查看详情

javaservlet之创建工程(jdk7+tomcat7+eclipse)

本篇文件主要记录下怎么在jdk7+tomcat7下,使用eclipse创建并运行一个servlet工程。安装具体步骤从网上搜索就可以找到,这里不再赘述。在eclipse中切换到j2ee下,从导航菜单windows下找到showview选项,并在showview下找到server。在server中... 查看详情

从 Ajax 调用控制器操作时无法下载生成的 PDF [重复]

】从Ajax调用控制器操作时无法下载生成的PDF[重复]【英文标题】:UnabletodownloadgeneratedPDFwhencontrolleractioniscalledfromAjax[duplicate]【发布时间】:2019-04-1916:43:47【问题描述】:我正在从控制器返回FilestreamResult我尝试了jquery和ajax两种方... 查看详情