在Grails中上传PDF文件时出现问题

时间:2015-05-22 15:09:19

标签: grails file-upload

我有以下课程:

<g:if test="${exibitionInstance?.flier}">
    Inserted
</g:if><g:else>
    <g:form action="uploadFlier" id="${exibitionInstance.ident()}" enctype="multipart/form-data">
       Insert Flier (PDF):
       <input type="file" id="flier" name="flier" />
       <g:actionSubmit class="create" action="uploadFlier" value="Carica"  />
    </g:form>
</g:else>

管理员可以使用以下表单上传传单(PDF文件):

def uploadFlier(){
    Exibition exibitionInstance = Exibition.get(params.id)
    def file = request.getFile('flier')
    if(file.empty) {
        flash.message = "File cannot be empty"
    } else {

        exibitionInstance.flier = file.getBytes()
        if(exibitionInstance.save()){
            println 'SAVED!'
        }
        if(exibitionInstance.flier==null){
            flash.message = "Flier not uploaded"
        }else{
            flash.message = "Flier uploaded"
        }
    }
    redirect (action:'index')
}

处理上传的控制器代码如下:

Func<T>

控制器打印“SAVED”并给我一条flash消息“Flier uploaded”,我可以打印flier longblob属性的内容。

但是当控制器结束时,我在数据库的flier列中有一个NULL:

Database

更新:

我明白了。我可以从mySql工作台插入pdf手动设置列。然后我可以从grails下载pdf。所以bug必须在控制器中。控制器方法uploadFlier()不是@Transactional(和只读)。更改后我收到错误:com.mysql.jdbc.PacketTooBigException:查询包太大了。

修复后的工作。

0 个答案:

没有答案