• 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; 150px;"/>
  • 相关阅读:
    SQL盲注 加速方法
    后渗透(七)关闭防火墙和杀毒软件并开启远程桌面
    后渗透(五)PassingTheHash
    瀏覽器兼容性解決方法
    web頁面優化以及SEO
    DOM中的事件傳播機制
    Get與Post的區別--總結隨筆
    微信飞机大战
    python教程(三)·自定义函数
    python教程(三)·函数与模块
  • 原文地址:https://www.cnblogs.com/sm-myworks/p/3662561.html
Copyright © 2020-2023  润新知