我是Grails的新人。我正在使用uploadr plugin上传图片。上传图片工作正常。我的图片已成功上传到我的目录中。
现在我想在show.gsp文件中显示这些图像。但我对此一无所知。 这是我的uploadr标签:
<uploadr:add name="fileupload" path="C:/Users/Shreshtt/workspace/groovypublish/grails-app/uploader" direction="up" maxVisible="8" unsupported="/uploadr/upload/warning" rating="true" voting="true" colorPicker="true" maxSize="0" />
请参阅此demo ..
如何在视图页面中显示这些图像。请帮忙。
答案 0 :(得分:0)
您应该在应用中使用这样的路径:
<uploadr:add name="ComonUp10" path="uploadFile/" direction="up" maxVisible="8" unsupported="/my/controller/action" rating="true" voting="true" colorPicker="true" maxSize="204800000" />
这里uploadFile /将是你的grails应用程序中web-app目录中的一个文件夹。
然后您将能够看到已上传的文件:
<% def path = new File("uploadFile/") %>
<uploadr:add name="mySecondUploadr" path="${path}" direction="up" maxVisible="5" unsupported="${createLink(plugin: 'uploadr', controller: 'upload', action: 'warning')}">
<% path.listFiles().each { file -> %>
<uploadr:file name="${file.name}">
<uploadr:fileSize>${file.size()}</uploadr:fileSize>
<uploadr:fileModified>${file.lastModified()}</uploadr:fileModified>
<uploadr:fileId>myId-${RandomStringUtils.random(32, true, true)}</uploadr:fileId>
</uploadr:file>
<% } %>
</uploadr:add>
为了显示在没有上传器的情况下上传到该目录中的图像,您可以在GSP页面上添加图像标签:
<img class="" src="${resource(dir:'uploadFile',file:'your-image.jpg')}" />
您可以在每个循环中添加图像,并将其设置为我的一个,如:
<g:each in="imageContainingList" var="oneRowObject">
<img class="" src='${resource(dir:"uploadFile", file:"${oneRowObject.imageFile}.jpg")}' />
</g:each>
或者如果您想列出uploadFile文件夹中的所有图像,那么您可以尝试:
您必须收集控制器中的所有图像名称,将它们传递给视图并使用grails图像标记显示它们。
要收集所有图片名称,您需要指向grails应用的路径:
def showImageGalleryControllerFunction(){
def imageDir = grailsAttributes.getApplicationContext().getResource("/uploadFile/").getFile().toString()
//Collect image names
def images = []
new File(imageDir).eachFileMatch (~/.*.png/) { file ->
images << file.getName()
}
[images:images]
}
并在你的showImageGalleryControllerFunction.gsp文件中:
<g:each in="${images}" var="image">
<g:img dir="images" file="$image" />
</g:each>