【问题标题】:Multipart post in grails causes 404 errorgrails中的多部分帖子导致404错误
【发布时间】:2014-02-28 12:13:45
【问题描述】:

我尝试将数据上传到 grails 应用程序。这非常有效,并且在数据库中创建了对象,并且上传的文档也存在。不幸的是,我在创建后直接收到 404 错误。

我正在使用带有以下代码的 grails 2.3.5:

保存操作:

@Transactional
def save(Book bookInstance) {
    if (bookInstance == null) {
        notFound()
        return
    }

    if (bookInstance.hasErrors()) {
        respond bookInstance.errors, view:'create'
        return
    }             


    if(!bookInstance.id){
        bookInstance.id = UUID.randomUUID().toString()
    }

    bookInstance.save flush:true


    request.withFormat {
        form {
            flash.message = message(code: 'default.created.message', args: [message(code: 'Book.label', default: 'Book'), bookInstance.id])
            redirect bookInstance
        }
        '*' { 
            respond bookInstance, [status: CREATED] 
        }
    }
}

普惠制:

<g:uploadForm action="save" class="form-horizontal">
        <g:render template="form"/>

        <div class="form-actions margin-top-medium">
            <g:submitButton name="create" class="btn btn-primary" value="${message(code: 'default.button.create.label', default: 'Create')}" />
            <button class="btn" type="reset"><g:message code="default.button.reset.label" default="Reset" /></button>
        </div>
    </g:uploadForm>

当使用标签而不是它时,它会起作用。 enctype="multipart/form-data" 导致错误。

我可以尝试什么来解决这个问题?

谢谢

【问题讨论】:

标签: grails file-upload


【解决方案1】:

您应该检查conf/Config.groovy 并检查multipartForm: 'multipart/form-data', 是否作为grails.mime.types 的值存在,例如:

grails.mime.types = [
    ...
    form: 'application/x-www-form-urlencoded',
    multipartForm: 'multipart/form-data',
]

您还需要在 withFormat 声明中指定它是多部分形式:

request.withFormat {
    form multipartForm  

【讨论】:

  • 完美!在 request.withFormat 中添加 multipartForm 就可以了。谢谢
【解决方案2】:

您可以尝试 'render' 或 'forward' 而不是 "respond" 。

【讨论】:

    猜你喜欢
    • 2017-10-06
    • 2015-05-28
    • 2010-12-14
    • 2017-09-22
    • 1970-01-01
    • 2019-12-10
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多