我有一个名为Product的域类。我已将信息和图像保存在数据库中。但在检索信息时,我检索了所有信息,但无法检索图像。
Domain Class
class Product {
String productName
String description
int price
byte [] photo
String phototype
}
I have saved the information and image in database using this action in ProductController. In gsp page, I used <g:uploadForm> tag to get information.
def saveProduct(){
def pic = request.getFile('picture')
product.properties['productName','description','price'] = params
product.photo=pic.bytes
product.phototype=pic.contentType
if(!product.save()){
render (view: "/adminPanel", model: [upload: "Product Failed to Upload",product:product])
return
}
else {
render (view: "/adminPanel", model: [upload: "Product Successfully Saved!!",product: product])
}
}
此代码将信息和图像保存在数据库中。现在,如何在adminPanel.gsp页面中显示图像和产品信息?我应该在控制器和gsp页面中编写什么样的代码?
答案 0 :(得分:0)
尝试使用插件。
Avatar uploader 是一个不错的选择。
简单的头像上传器 - Grails使这些图像的上传和显示几乎是微不足道的。
答案 1 :(得分:0)
您可以非常简单地显示存储在DB
中的图片。
只需添加一个操作即可从表中检索图像并将其发送到GSP
class ProductController {
def saveProduct(){
.......
}
/** Action for fetching the image byte array
Assuming that you have passed the "productName" from UI
to fetch the particular product image
*/
def fetchProductImage(){
def product = Product.findByProductName(params.productName)
byte[] imageInByte = product.photo
response.contentType = 'image/png' // or the appropriate image content type
response.outputStream << imageInByte
response.outputStream.flush()
}
}
从GSP View
调用此控制器操作,如下所示:
<img src="${createLink(controller: 'product', action: 'fetchProductImage', params: ['productName': 'Some_product_name'])}"/>