最近几天我才开始使用 Groovy 和 Grails。我之前没有任何 Java 经验,所以你必须原谅这个(可能)非常基本的问题。我搜索了 Google 和 Stack Overflow,但没有找到任何可以帮助我进行实际安装的东西。
我有一个图像上传工作,我将文件存储在服务器上。我使用 IBM Grails 教程来指导我完成它。这很好用。
我还想以大、中、小格式调整文件的大小。我想为此使用 imgscalr ,但我无法让它工作。我已经下载了包含各种 .jar 文件的 4.2 版。我需要把这些放在服务器上的某个地方并引用它们吗?我唯一做的就是将这些行添加到buildConfig.groovy
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
// runtime 'mysql:mysql-connector-java:5.1.20'
compile 'org.imgscalr:imgscalr-lib:4.2'
}
import org.imgscalr.Scalr.*
在我的PhotoController.Groovy
这是我将文件保存到服务器的代码,我还想调整大小并保存图像。
def save() {
def photoInstance = new Photo(params)
// Handle uploaded file
def uploadedFile = request.getFile('photoFile')
if(!uploadedFile.empty) {
println "Class: ${uploadedFile.class}"
println "Name: ${uploadedFile.name}"
println "OriginalFileName: ${uploadedFile.originalFilename}"
println "Size: ${uploadedFile.size}"
println "ContentType: ${uploadedFile.contentType}"
def webRootDir = servletContext.getRealPath("/")
def originalPhotoDir = new File(webRootDir, "/images/photographs/original")
originalPhotoDir.mkdirs()
uploadedFile.transferTo(new File(originalPhotoDir, uploadedFile.originalFilename))
BufferedImage largeImg = Scalr.resize(uploadedFile, 1366);
def largePhotoDir = new File(webRootDir, "/images/photographs/large")
largePhotoDir.mkdirs()
photoInstance.photoFile = uploadedFile.originalFilename
}
if (!photoInstance.hasErrors() && photoInstance.save()) {
flash.message = "Photo ${photoInstance.id} created"
redirect(action:"list")
}
else {
render(view:"create", model:[photoInstance: photoInstance])
}
}
我得到的错误是No such property: Scalr for class: garethlewisweb.PhotoController
我显然做错了什么。任何指导表示赞赏。