保存具有不同ID的多个文件

时间:2015-12-24 03:46:38

标签: grails

在Grails中,我让用户上传多个文件并将其保存到数据库,下面是控制器中的代码

def save(Photos photosInstance) {
    if (photosInstance == null) {
        notFound()
        return
    }

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

    request.getFileNames().each{
        request.getFiles(it).each { file ->

        } 
    } 

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

问题是所有的文件都是用DB中的一个ID保存的,我需要用不同的ID保存每个文件,如何实现这一点?

2 个答案:

答案 0 :(得分:0)

你是如何创建photosInstance的?如果您每次都保存相同的对象 - 这将导致保存相同的ID。

您必须为每个上传的文件(新...)

创建一个新对象

答案 1 :(得分:0)

您没有为收到的每个文件创建新的文件对象。这是解决方案。

request.getFileNames().each{
        request.getFiles(it).each { file ->
            // don't know how is your file class but for example...
            new Photo(file: file).save()
        } 
    }