首先,您不应该将图像上传到应用程序的目录,因为如果您使用版本控制 (git | svn),它会使应用程序变得更重,因为文件也受到版本控制。
您可以做的是将图像保存在其他位置并将位置路径保存在 Config.groovy 中
imageUpload.path='your location'
在任何需要的地方访问这个位置
grailsApplication.config.imageUpload.path
现在使用<g:uploadForm> 标签创建表单,或者您可以使用普通的<form> 标签,但请确保将 enctype 属性更改为 multipart/form-data
看看演示表格
<g:uploadForm action="uploadImage">
<input type="file" name="image">
<input type="submit" value="Upload Image">
</g:uploadForm>
现在在你的控制器中你有uploadImage的动作
def uploadImage(){
def file=request.getFile('image')
String imageUploadPath=grailsApplication.config.imageUpload.path
try{
if(file && !file.empty){
file.transferTo(new File("${imageUploadPath}/${file.name}"))
flash.message="your.sucessful.file.upload.message"
}
else{
flash.message="your.unsucessful.file.upload.message"
}
}
catch(Exception e){
log.error("Your exception message goes here",e)
}
}
这将有助于上传您的图片,但不会上传到您的 web-app/images 目录。
但如果您仍想将其转移到您的 web-app/images 目录,您可以如上所述在 Config.groovy 中设置 web-app/images 目录的路径。