Java(Groovy)照片上传,支持页面立即浏览

页面:

<div id="show" class="fieldcontain ${hasErrors(bean: topicInstance, field: 'thumbnailImageId', 'error')} ">

    <label for="thumbnailImageId">
        <g:message code="answer.thumbnailImageId.label" default="缩略图浏览" />
        
    </label>
    <g:if test="${ topicParams?.thumbnailImageId }">
    <img src="${ topicParams.thumbnailImageId }" id="img0" />
    </g:if>
    <g:else>
    <img src="" id="img0" style="display:none">
    </g:else>
</div>
<div class="fieldcontain ${hasErrors(bean: topicInstance, field: 'thumbnailImageId', 'error')} ">
    <label for="thumbnailImageId">
        <g:if test="${ topicParams?.thumbnailImageId }">
            <g:message code="topic.thumbnailImageId.label" default="缩略图修改" />
        </g:if>
        <g:else>
            <g:message code="topic.thumbnailImageId.label" default="缩略图上传" />
        </g:else>
    </label>
    
    <g:textField name="ImageName" size="40px" value="${topicParams?.ImageName}"/>(PNG/JPEG)
    <input id="myImage" name ="myImage" type="file" multiple="multiple"  style="display:none;" οnchange="ImageName.value=this.value"/>
    <input type="button" class="btn btn-info" value="请选择" οnclick="myImage.click()">
</div>
<script>    
$("#myImage").change(function(){
    document.getElementById("img0").style.display="";
    var objUrl = getObjectURL(this.files[0]) ;
    console.log("objUrl = "+objUrl) ;
    if (objUrl) {
        $("#img0").attr("src", objUrl) ;
    }
}) ;

//建立一個可存取到該file的url
function getObjectURL(file) {
    var url = null ;
    if (window.createObjectURL!=undefined) { // basic
        url = window.createObjectURL(file) ;
    } else if (window.URL!=undefined) { // mozilla(firefox)
        url = window.URL.createObjectURL(file) ;
    } else if (window.webkitURL!=undefined) { // webkit or chrome
        url = window.webkitURL.createObjectURL(file) ;
    }
    return url ;
}

</script>


controller:

//start 上传图片至EFile表
        Setting set = Setting.get(1)
        def f = request.getFile('myImage')
        if(!f.empty){
            file = new EFile()
            switch(f.contentType){
                case "image/jpeg":
                    file.name=futil.getFormatFileName(FileType.JPG.value);
                    f.transferTo(new File(set.fileLocalPath+File.separator + "Files" + File.separator + "Image" + File.separator + file.name));
                    file.type=FileType.JPG.toString()
                    break;
                case "image/png":
                    file.name=futil.getFormatFileName(FileType.PNG.value);
                    f.transferTo(new File(set.fileLocalPath+File.separator + "Files" + File.separator + "Image" + File.separator + file.name));
                    file.type=FileType.PNG.toString()
                    break;
                default :
                    flash.message = "上传失败,文件类型错误"
            }
            
            file.smallName = futil.getSFileName()
            futil.decoderBase64File(futil.encodeBase64File(set.fileLocalPath +File.separator + "Files" + File.separator + "Image" + File.separator + file.name),set.fileLocalPath,file.name)
            file.localPath = File.separator + "Files" + File.separator + "Image";
            ImageUtil.transform(set.fileLocalPath+file.localPath+File.separator+file.name,
                set.fileLocalPath+file.localPath+File.separator+file.smallName,200,140)
            file.size = f.size
            file.serverPath = "/" + "Files" + "/" + "Image";
            
            if(!file.save(flush:true)){flash.message ="上传失败"}
            else{
                topicInstance.thumbnailImageId = file.id
            }
        }
        //end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值