我找不到如何在Grails中将文件上传到文件系统的好解释。通过使用byte[]
字段直接上传到数据库,我经历过的教程书“保持简单”,但这对我的特定情况来说并不理想。 Grails文档解释了文件上传:http://grails.org/doc/latest/guide/theWebLayer.html#uploadingFiles。所以我尝试修改它以适应我的资源:
def save(Person personInstance) {
// ... a couple standard error checks
// Handle file upload
def f = request.getFile(params.thumbnail)
if (f.empty) {
flash.message = 'file cannot be empty'
return
}
def filename = "myfile.txt"
def webrootDir = servletContext.getRealPath("/") //app directory
f.transferTo(new File(webrootDir,"images/uploads/thumbnails/$filename"))
personInstance.save flush:true
// ... response
}
Could not find matching constructor for:
java.lang.String(org.springframework.web.multipart.commons.CommonsMultipartFile)
我也尝试使用字段def f = request.getFile('thumbnail')
的名称,但是遇到了同样的错误。我确保添加g:uploadForm
代码并在表单中设置<input name="thumbnail" type="file"/>
。
我希望能够将图像上传到文件系统,然后使用数据库中的String
字段来存储该图像的名称。