在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保存每个文件,如何实现这一点?
答案 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()
}
}