0

在某些情况下,我在尝试在 facelet 页面(从数据库中检索)上显示图像并且页面由 URL(不是 h:commandLink )。它适用于通过 h:commandButton 处理请求的其他页面。然而,除了图像之外的所有数据都出现在以下场景中......

  1. fundraiseView.xml (facelet 页面) html ... p:graphicImage value="#{fundraisePage.picture}"/ ... /html

  2. FundraisePage(带有请求参数的请求范围内的支持 bean)

    @ManagedBean
    @RequestScoped
    public class FundraisePage extends BackingBean {
    
    
      @EJB DataSBLocal dataSB;
      StreamedContent picture;
    
    
      @ManagedProperty(value="#{param.id}")
      private int id;
    
    
      @PostConstruct
      public void init() {
        this.fundRaiseEO = dataSB.getFundRaiseIndividual(id);
        InputStream inputStream = new ByteArrayInputStream(this.fundRaiseEO.getPicture());
        this.setPicture(new DefaultStreamedContent(inputStream, "image/jpeg"));
      }
    
  3. 当我通过http://...../faces/fundraiseView.xml?id=1调用页面时,页面返回显示 id 1 的所有数据,但不显示图片。我确信这与我调用页面的方式有关(因为我让它在其他地方工作)但是我需要它是在 JSF 包装标签之外发起的请求。

非常感谢任何见解或建议。

谢谢,乔纳森


如何消除 ImageMagick 的像素大小限制?

我的网络服务器上有 ImageMagick 处理上传的图像,但它似乎有 4000 像素的限制,它会出错。如何消除该限制?

目前我的 LimitRequestBody 是 536870911 (500mb)

我也有这些设置:

ini_set('max_file_uploads',150);
ini_set('memory_limit','64M');
ini_set('upload_max_filesize','6M');
ini_set('max_execution_time',240);
ini_set('post_max_size','8M');
ini_set('max_input_time',240);

4

1 回答 1

1

在另一个线程中找到了答案。

加载一组带有 primefaces 的图像

我需要在 p:graphicImage 标签中使用标签 f:parm name="id" value="#{fundraisePage.id}" 以便它接受 id 作为查找参数。以及将图像标签上的值更改为属性中的此方法...

公共 StreamedContent getImage () {

     FundRaise fundRaiseEO = new FundRaise();
     fundRaiseEO = dataSB.getFundRaiseIndividual(id);
     return new DefaultStreamedContent(new ByteArrayInputStream(fundRaiseEO.getPicture()), "image/jpeg"); \\ or whatever your image mime type.

}

于 2010-11-24T02:47:18.353 回答