zoukankan      html  css  js  c++  java
  • 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;"/>
  • 相关阅读:
    【转】你刚才在淘宝上买了一件东西【技术普及贴】
    Hibernate使用自定义脚本替换注解或者xml文件中的自动生成表结构
    北京地铁和广州地铁之感想
    使用eclipse开发工具与hibernate开发者为开源一起做贡献
    hdu 1159 Common Subsequence(最长公共子序列LCS)
    题解报告:hdu 2059 龟兔赛跑
    循环顺序队列模拟病人看病程序
    题解报告:hdu 1060 Leftmost Digit
    ACM_求N^N的最高位数
    ACM_Encoding
  • 原文地址:https://www.cnblogs.com/sm-myworks/p/3662561.html
Copyright © 2011-2022 走看看