p:fileDownload bean方法被调用但文件下载不显示

2024-03-19

您好,我正在使用 JSF 和 Primefaces 进行文件上传和下载相同的文件操作。

我结合使用来自不同论坛和博客的技术(BelusC 的博客和 Primefaces Showcase)。

该操作的主要思想是让用户上传文件并 为上传的文件生成一个下载链接,以便他可以下载 并在提交之前查看。

这是我的代码:

索引.xhtml

<h:form>
    <p:fileUpload showButtons="false" label="Attach Refrral" 
        auto="true" fileUploadListener="#{fileBean.uploadListener}"/>
</h:form>

<h:form >
   <p:commandLink>
      See Uploaded File
      <p:fileDownload value="#{fileBean.refrralFile}"/>
   </p:commandLink>
</h:form>

文件Bean.java

private StreamedContent refrralFile;


    public void uploadListener(FileUploadEvent evt)throws Exception
    {
        UploadedFile fx = evt.getFile();

        File mainDir = new File("C:/","fileStorage");
        if(!mainDir.exists())
        {
            mainDir.mkdir();
        }
        File subDir = new File(mainDir,"AttachedRefrrals");
        if(!subDir.exists())
        {
            subDir.mkdir();
        }
        String fileName = fx.getFileName();

        File f = new File(subDir,fileName);
        FileOutputStream fos = new FileOutputStream(f);
        IOUtils.copy(fx.getInputstream(), fos);

        InputStream is = ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()).getResourceAsStream(f.getAbsolutePath());
        refrralFile  = new DefaultStreamedContent(is, new MimetypesFileTypeMap().getContentType(f), fileName);

    }


    public StreamedContent getRefrralFile() {
        return refrralFile;
    }

使用上面的代码文件上传成功,但如果我单击文件下载链接,则会引发异常:

java.lang.IllegalStateException: getOutputStream() has already been called for this response

I used FacesContext#responseComplete()正如很多地方所建议的那样,现在下载链接根本不起作用。

如果我的技术或代码有错误,请纠正我,并在您知道的情况下提出更好的方法。


The <p:commandLink>默认情况下触发 ajax 请求。您无法通过ajax 下载文件。负责处理 ajax 请求的 JavaScript 不知道如何处理检索到的二进制文件,该文件与预期的 XML 响应有很大不同。出于明显的安全原因,JavaScript 没有工具来触发Save As任意内容的对话。

因此,要解决您的具体问题,请使用

<p:commandLink ajax="false">

or just

<h:commandLink>

也可以看看:

  • 如何从 JSF 支持 bean 提供文件下载? https://stackoverflow.com/questions/9391838/how-to-stream-a-file-download-in-a-jsf-backing-bean/9394237#9394237
  • PrimeFaces<p:fileDownload>展示页面 http://www.primefaces.org/showcase/ui/fileDownload.jsf- 这也明确表明ajax="false"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

p:fileDownload bean方法被调用但文件下载不显示 的相关文章

  • 我可以下载并安装 gacutil.exe 而无需安装 VS 或 SDK 吗?

    我希望管理员为我注册一些 DLL 但他可能不希望安装整个 SDK 他可以直接安装吗gacutil exe 如果有的话 他可以从哪里得到呢 我只需发送电子邮件至gacutil exe文件给他 他必须把它放在他的机器上哪里才能使用 我通过复制让
  • Python下载器

    所以我试图编写一个脚本来使用 python 下载图片文件 我使用谷歌找到了这个 def 但是我下载的每张图片都 损坏 了 有任何想法吗 def download url Copy the contents of a file from a
  • 如何动态添加JSF组件

    我可以动态添加 JSF 组件吗 我需要一个带有按钮的表单 该按钮应该添加一个
  • 如何在 Nodejs 中创建代理下载

    我想创建一个nodejs服务器 它充当下载文件的代理 即用户点击 在下载按钮上 从nodejs服务器调用get nodejs服务器从不同的服务器获取链接 远程服务器并开始下载 以 TB 为单位 然后将该下载转发给用户 TB 文件不应存储在
  • 流范围导航到起始页不起作用

    这与其说是一个问题 不如说是一个注释 对于 Glassfish4 在 JEE7 应用程序中 我尝试使用编程流定义 用 Produces FlowDefinition 注释的 java 类 来使用流范围 我使用 h commandButton
  • JSF h:列标记固定宽度

    有人可以告诉我如何使用 JSF 修复数据表中列的宽度吗 我的代码当前如下
  • 检测“文件下载”弹出窗口何时关闭

    我有一个网页 用 JSF 制作 其中一些链接允许用户获取 PDF 文件 当用户点击这样的链接时 会显示一个等待弹出窗口 它是一个模式面板 因为 PDF 的生成可能很长 并且一旦创建文件 IE 就会显示 文件下载 弹出窗口 建议 打开 保存
  • PHP:如何访问根目录之外的下载文件夹? [复制]

    这个问题在这里已经有答案了 我如何创建一个 PHP 脚本 页面 允许会员 买家下载存储在根目录之外的下载文件夹中的压缩文件 产品 我正在使用 Apache 服务器 请帮忙 谢谢 保罗 G 您可能会在 soac 提供的链接中找到一些更好的信息
  • 如何使用 Javascript 从 Chrome iOS 下载 blob 文件?

    如何使用 Javascript 从 Chrome iOS 下载 blob 文件 我正在从 iOS 下载文件 pdf excel txt png iOS 没有文件系统 这对下载来说是一个问题 我创建了一个代码 根据操作系统和导航器 如果需要
  • 如何将注销的用户重定向到 Java EE/JSF 中的主页? [复制]

    这个问题在这里已经有答案了 我需要只允许登录用户访问我的应用程序的大部分页面 我正在使用 JSF 2 开发 Java 企业应用程序 有谁知道我该怎么做 也许有一个配置文件 我在主页中有一个登录组件 我希望用户在单击页面上除少数项目之外的任何
  • 数据表 JSF 中的延迟加载

    在我负责的许多项目中 没有什么比数据表中的延迟分页更好的了 JSF 是否有某种魔力 或者我说得对吗 它确实是一个很大的性能问题 如果你看过一些教程 几乎没有人关心惰性分页 假设您在支持 bean 上有 List 并且数据库中有 2000 行
  • 向控制器发送参数

    我懂了
  • 使用 pdfkit 和 FastAPI 下载 PDF 文件

    我将使用 FastAPI 创建一个 API 将HTML页面到 PDF 文件 使用pdfkit 但是 它将文件保存到我的本地磁盘 当我在线提供此API后 用户如何将该PDF文件下载到他们的计算机上 from typing import Opt
  • 从 ADF Faces JSF 1.2 中的托管 bean 构造函数导航

    是否可以从托管 bean 的构造函数导航到另一个页面 视图 如果发生任何异常 我希望进行此重定向 我尝试了很多方法 Try 1 getFacesContext responseComplete getFacesContext getAppl
  • 警告:此页面调用使用前缀 XXX 声明的 XML 命名空间 http://xmlns.jcp.org/jsf/XXX 但该命名空间不存在标记库

    我正在使用 Netbeans 8 02 它似乎理解它帮助我创建的复合组件 它位于 resources ezcomp 文件夹中 Nebeans 默认使用此文件夹 如下所示
  • 使用 OkHttp 下载损坏的文件

    我编写的下载文件的方法总是会产生损坏的文件 public static String okDownloadToFileSync final String link final String fileName final boolean te
  • 表单中的表单:跳过父表单的验证

  • 对话框不会关闭 primefaces

    我的其中一个页面上有一个对话框 打开很好 如果您使用页面上的按钮 它会关闭 效果很好 但是 如果您尝试 x 退出对话框 它将不会关闭 我相信这与我在对话框上有一个输入字段有关 但我不确定 如果这是一个骗局 我深表歉意 我找不到类似的帖子
  • Ajax 如何在 JSF 上工作?

    我是 JSF 新手 但我对 ASP NET 及其 Ajax 功能有一些经验 我知道 JSF 有一些 Ajax 标签可以使用 Ajax 完成一些任务 但我想知道它是如何使用 Ajax 的 它使用 ASP NET 中的 ScriptManage
  • iOS Swift 在后台下载大量小文件

    在我的应用程序中 我需要下载具有以下要求的文件 下载大量 例如 3000 个 小 PNG 文件 例如 5KB 逐个 如果应用程序在后台继续下载 如果图像下载失败 通常是因为互联网连接丢失 请等待 X 秒然后重试 如果失败Y次 则认为下载失败

随机推荐

  • 为什么intellij IDEA高亮显示build.sbt?

    我最近在 IDEA 中使用 sbt 创建了一个新项目并得到了这个 它出什么问题了 我安装并启用了 scala 插件 IDEA 版本是 14 好的 我找到了解决这个问题的方法 链接在这里 https stackoverflow com a 2
  • DataSource 和 ConnectionPoolDataSource 之间的区别

    有什么区别javax sql DataSource http docs oracle com javase 6 docs api javax sql DataSource html and javax sql ConnectionPoolD
  • 在 Angular2 的自定义验证器中注入服务

    我尝试使用自定义验证器中的服务来检查用户名是否已存在 import Component from angular2 core import Control ControlGroup FormBuilder from angular2 com
  • 如何从旋转矩阵计算角度

    我使用单个对象的两个图像 该对象从第一个图像旋转一定角度 我计算了每个图像的姿势 并使用 Rodergues 将旋转向量转换为矩阵 现在我如何计算并查看它从第一个位置旋转了多少 我尝试了很多方法 但答案是否定的 编辑 我的相机是固定的 只有
  • 无法解析 fromJson

    我看过了这个线程 https stackoverflow com questions 17453406 gson with mixed read and 这个线程 https stackoverflow com questions 3231
  • CodeIgniter 1.7 升级到 2.1 后出现未定义的 $load 属性错误

    为什么在将 CodeIgniter 从 v1 7 升级到 v2 1 后出现此错误 A PHP Error was encountered Severity Notice Message Undefined property Site loa
  • 在 uwsgi 下运行的单元测试 Flask 应用程序

    我对 python 比较陌生 正在寻找一种 pythonic 方法来处理这种实践 我继承了一个相当简单的 Python 2 7 Flask 应用程序 该应用程序在 uwsgi 下运行 我想向其中添加一些单元测试 它在缩进级别 0 上进行一些
  • SQL FOR XML 路径列表和计数

    我有一张表 例如 Date Name 20 May 2011 Bob 20 May 2011 Fred 20 May 2011 Jim 21 May 2011 Bob 21 May 2011 Ed 22 May 2011 Bill 我需要一
  • 如何检查 ASP.NET 4 是否注册为在 IIS 7.5 中运行?

    如何检查 ASP NET 4 是否注册为在 IIS 7 5 中运行 除了运行之外 必须有某种方法可以确定这一点 aspnet regiis i 从框架的文件夹内 我不需要以编程方式检查这一点 只需通过 IIS 管理器或命令行即可 我有一个
  • setFirstResult 和 setMaxResult 与 Order By 配合使用效果不佳

    什么可能导致CriteriaQuery orderBy方法停止工作 以下是具体实现 OpenJPAEntityManager kem OpenJPAPersistence cast entityManager kem getFetchPla
  • 将 JSON 字符串转换为 JAVA 中的通用对象(使用 GSON)

    我有一个返回 JSON 的 Api 响应采用某种格式 可以放入名为 ApiResult 的对象中 并包含Context
  • 如何计算贝塞尔曲线的面积?

    给定以下描述 SVG 三次贝塞尔曲线的路径 例如 M 300 140 C 300 40 500 40 500 140 并假设有一条直线连接端点300 140 to 500 140 封闭曲线下的面积 是否可以计算如此封闭的面积 谁能建议一个公
  • 如何创建自定义 haar 分类器?

    我正在努力创建一个自定义 haar 分类器 我在网上找到了一些教程 但他们没有指定他们使用的是哪个版本的 opencv 我需要的是一个非常简洁和简化的所需步骤示例 以及一个简单的图像数据集 我还需要知道 opencv 版本和操作系统平台 以
  • Rails 7 不会通过“generatescaffold”命令生成 SCSS 文件

    我在 Rails 7 中创建了一个新项目 每当我使用生成脚本时 rails generate scaffold or rails generate controller 除了 css scss 之外 所有生成的文件都会被创建 显然 我不是唯
  • svn 客户端超时并破坏 WC 状态

    当我提交较大的更改 数百兆字节 时 即使签入确实完成 客户端也会超时 当我右键单击 WC 并显示日志时 TSVN 显示即使实际签入 WC 修订版也不会更新 我尝试过使用TortoiseSVN 1 9 5 Build 27581 64 Bit
  • 静止搜索性能

    这是一个双重问题 我组装了一个简单的国际象棋引擎 它执行 Alpha Beta 搜索 最后执行静止搜索 静止搜索正在影响性能 问题是 这是可以接受的性能影响吗 如果不是 那么应该采取什么措施来解决这个问题 下图给出了性能影响 请注意 这些统
  • 出现“无法将 PersistentGenericSet 转换为 ISet”错误

    我收到此错误 无法转换类型的对象 NHibernate Collection Generic PersistentGenericSet1 IocWinFormTestEntities People to type System Collec
  • 如何禁用apache2中的mod_deflate?

    如何在 Apache2 中禁用 mod deflate 对于特定目录中的文件 OR 对于所有具有扩展名的文件 例如 py 您可以设置环境变量no gzip http httpd apache org docs 2 2 mod mod def
  • MAVEN_OPTS 与 mvn -D

    我认为两者都定义了相同的 JVM 属性 但两者之间显然存在差异 我找不到明确的解释 如果我在构建的 Jenkins Maven 中使用两者 则只有 D 设置的属性在 System getProperties 的 Java 应用程序中可见 尽
  • p:fileDownload bean方法被调用但文件下载不显示

    您好 我正在使用 JSF 和 Primefaces 进行文件上传和下载相同的文件操作 我结合使用来自不同论坛和博客的技术 BelusC 的博客和 Primefaces Showcase 该操作的主要思想是让用户上传文件并 为上传的文件生成一