我正在重定向上传的图像,如下所示:
控制器:
def upload() {
def f = request.getFile('myFile')
if (f == null | f.empty) {
flash.default = "file cannot be empty"
errors.getFieldError("cannot be empty")
return
}
def fName = f.getOriginalFilename()
def picture = new Picture(orgName: fName, urlOrg: "http://localhost/"+fName)
f.transferTo(new File('/Users/sagarmichael/Desktop/photoUpload/'+fName))
println("saved")
redirect(action: 'test', params: [url1:picture.urlOrg] )
}
def test(){
System.out.println(params.url1)
[url1:params.url1]
}
我希望这会将url1发送到我的视图test,其中我有:
<img src="${url1}"/>
我希望这会在屏幕上显示图像。 我正确地设置了apache2配置,当我去
时http://localhost/<imageName>
它可以正常工作。
我得到的是浏览器的网址栏中的内容:
http://localhost:8080/FYP/profile/test?url1=http%3A%2F%2Flocalhost%2Flonglogo3.png
任何想法?
答案 0 :(得分:0)
您正在混合模型和URL参数。如果你真的需要像这样,你必须在test()动作中将param'url1'的内容放入模型中:
def test() {
return [ 'url1': params.url1 ]
}
我希望,你明白了,我绝对建议重新设计代码; - )
答案 1 :(得分:0)
如果您将redirect
方法与params
一起使用,它们将显示在网址中。要省略这一点,您需要以另一种方式思考设计代码。
查看代码,您可能会上传某些图片并需要显示结果。我建议你只将图像的名称传递给你的其他方法并挂载动态链接(并不总是localhost,wright?)。输出网址为:
http://localhost:8080/FYP/profile/test?image=longlogo3.png
如果您还需要省略图像名称,则必须将其存储在会话中。
答案 2 :(得分:0)
尝试
render(view:"test", model: [url1:picture.urlOrg])
或者
chain(action: "test", model: [url1:picture.urlOrg])