如果我改变
image="#{pageContext.servletContext.contextPath}/upload
/#{fileUploadController.imagemTemporaria}"
并放
image="/imagens/#{fileUploadController.imagemTemporaria}"
图像已加载。另一方面,方法裁剪停止工作。
我的图片位于F:\imagens-retaguarda\imagens
我的描述符包含以下内容
<property name="alternatedocroot_1" value="from=/imagens/*
dir=F:\imagens-retaguarda\" />
你知道为什么会这样吗?
下面是我的代码。
<h:form>
<p:outputPanel id="outputPanelUpload">
<h:panelGrid columns="2">
<h:outputText value="Imagem" rendered="#{fileUploadController.exibeBotao}"/>
<h:outputText value="Pré-visualização" rendered="#{fileUploadController.exibeBotao}"/>
<p:imageCropper id="imageCropperImagemTemporaria"
value="#{fileUploadController.croppedImage}"
image="#{pageContext.servletContext.contextPath}/upload/#{fileUploadController.imagemTemporaria}"
initialCoords="0,0,50,50"
maxSize="250,163"
minSize="30,30" />
<h:panelGroup rendered="#{fileUploadController.exibirPreVisualizacao}">
<p:graphicImage value="#{fileUploadController.imagemEnviada}" cache="false"/>
</h:panelGroup>
</h:panelGrid>
<br/>
<p:commandLink action="#{fileUploadController.crop}" update="outputPanelUpload" rendered="#{fileUploadController.exibeBotao}" value="Pré-visualizar" id="preVisualizar"/>
</p:outputPanel>
<br/>
<br/>
<p:fileUpload fileUploadListener="#{fileUploadController.enviarImagem}" sizeLimit="1000000" auto="true" update="outputPanelUpload" label="Escolher"/>
</h:form>
答案 0 :(得分:0)
对p:imageCropper有一个限制,它不适用于glassfish中的备用docroot
来自primefaces论坛的
ImageCropper可以在webroot和外部图像中裁剪本地图像 位于http://。我不认为这是一个错误,但更像是一个 限制,因为它不支持像这样的glassfish特定的东西。
link to above quoute by optimus。
一些友好的论坛用户已经整理了一个如何构建完整网址的代码片段。 Havnt自己测试了它,但从概念上说它应该可以工作。
<p:imageCropper id="croppedImg"
value="#{controller.croppedImage}"
image="#{request.requestURL.substring(0, request.requestURL.length() - request.requestURI.length())}#{request.contextPath}/Screens/Image.png"
initialCoords="10,10,200,200" />