Grails 項目中處理圖片上傳,下面是單個的文件上傳 Example

  1. 前臺頁面上傳圖片的的GSP頁面:
  2. <g:form action="save"  method="post" enctype="multipart/form-data">//上傳文件須要把form表單的enctype 屬性設置爲multipart/form-data
  3.    <div> <input type="file" id
  4. 前臺頁面上傳圖片的的GSP頁面:
  5. <g:form action="save"  method="post" enctype="multipart/form-data">//上傳文件須要把form表單的enctype 屬性設置爲multipart/form-data
  6.    <div> <input type="file" id="projectLogoPath" name="projectLogoPath"value="${fieldValue(bean:projectInstance,field:'projectLogoPath')}" />//上傳圖片的表單控件
  7. </div>          <fieldset class="buttons">
  8.                 <g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
  9. </fieldset>
  10. </g:form>
  11. ="projectLogoPath" name="projectLogoPath"value="${fieldValue(bean:projectInstance,field:'projectLogoPath')}" />//上傳圖片的表單控件
  12. </div>          <fieldset class="buttons">
  13.                 <g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
  14. </fieldset>
  15. </g:form>
  • Cottroller 中的方法:
  • def uploadImage(){//上傳圖片到本地文件夾中
  •        def fileName
  •        def filePath
  • def f = request.getFile('projectLogoPath')//獲取前臺頁面表單控//中的文件名稱
  •        if(!f.empty) {
  •            Date  d=new Date();
  •            String dateString=  d.format("yyyy-mm-dd-hh-ss")
  •            String  fileProName=f.getOriginalFilename()
  • String extension = fileProName.split('\\.')[-1]//截取獲取文
  • //件名的後綴
  •            fileName=dateString+"."+extension
  •            filePath="web-app/images/"
  •            f.transferTo(new File(filePath+fileName))
  •        }
  •        return  filename    //返回文件名稱
  •     }

 

  1. Product domain類中存儲的是圖片的相對路徑:
  2. def save() {
  3.        User user=SpringSecurityService.currentUser//獲取當前用戶名
  4.        def productInstance = new Product(params)
  5.        productInstance.state=0;
  6. String pictureUrl=uploadImage()//調用上傳圖片的方法,返回一個儲//存圖片的路徑。
  7.        productInstance.pictureUrl=pictureUrl//存儲圖片路徑
  8.        if (!productInstance.save(flush: true)) {
  9.            render(view: "create", model: [productInstance: productInstance])
  10.            return
  11.        }

 

  1.        ProductSet p=new ProductSet()//在用戶保存商品信息的時候將用戶和商品關聯起來
  2.        p.user=user
  3.        p.product=productInstance
  4.        p.save();
  5.        flash.message = message(code: 'default.created.message', args: [
  6.            message(code: 'product.label', default: 'Product'),
  7.            productInstance.id
  8.        ])
  9.        redirect(action: "list", id: productInstance.id)
  10.     }

 

  • 前臺頁面顯示顯示圖片方式:
  • <img
  • src="<%=request.getContextPath()%>/images/${productInstance.pictureUrl}" alt="Grails" style="height:100px;width: 150px;"/>
相關文章
相關標籤/搜索