Grails 項目中處理圖片上傳,下面是單個的文件上傳 Example
- 前臺頁面上傳圖片的的GSP頁面:
- <g:form action="save" method="post" enctype="multipart/form-data">//上傳文件須要把form表單的enctype 屬性設置爲multipart/form-data
- <div> <input type="file" id
- 前臺頁面上傳圖片的的GSP頁面:
- <g:form action="save" method="post" enctype="multipart/form-data">//上傳文件須要把form表單的enctype 屬性設置爲multipart/form-data
- <div> <input type="file" id="projectLogoPath" name="projectLogoPath"value="${fieldValue(bean:projectInstance,field:'projectLogoPath')}" />//上傳圖片的表單控件
- </div> <fieldset class="buttons">
- <g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
- </fieldset>
- </g:form>
- ="projectLogoPath" name="projectLogoPath"value="${fieldValue(bean:projectInstance,field:'projectLogoPath')}" />//上傳圖片的表單控件
- </div> <fieldset class="buttons">
- <g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
- </fieldset>
- </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 //返回文件名稱
- }
- Product domain類中存儲的是圖片的相對路徑:
- def save() {
- User user=SpringSecurityService.currentUser//獲取當前用戶名
- def productInstance = new Product(params)
- productInstance.state=0;
- String pictureUrl=uploadImage()//調用上傳圖片的方法,返回一個儲//存圖片的路徑。
- productInstance.pictureUrl=pictureUrl//存儲圖片路徑
- if (!productInstance.save(flush: true)) {
- render(view: "create", model: [productInstance: productInstance])
- return
- }
- ProductSet p=new ProductSet()//在用戶保存商品信息的時候將用戶和商品關聯起來
- p.user=user
- p.product=productInstance
- p.save();
- flash.message = message(code: 'default.created.message', args: [
- message(code: 'product.label', default: 'Product'),
- productInstance.id
- ])
- redirect(action: "list", id: productInstance.id)
- }
- 前臺頁面顯示顯示圖片方式:
- <img
- src="<%=request.getContextPath()%>/images/${productInstance.pictureUrl}" alt="Grails" style="height:100px;width: 150px;"/>
歡迎關注本站公眾號,獲取更多信息