我想知道如何将上传的图像保存为grails。
情况: 我有一个带有表单的gsp页面,其中包含一个文件上传。我试图从fileupload获取数据,但它不起作用。
在控制器中:
def file = request.getFile('fileupload')
appearanceInstance.logo = file.encodeAsBase64().toString()
在视图中:
<g:form action="save" enctype="multipart/form-data">
<div class="file-upload">
<label >Choose logo</label>
<input id="fileupload" type="file" name="fileupload" onchange="handleFileSelect(this)"/>
</div><br/>
<br/>
</g:form>
有过这方面经验的人吗?
这可能是另一种方法,但由于我在使用文件upoad选择图像时在视图中进行调整,我可以从控制器中获取图像数据吗?
提前致谢!
更新:
要清楚,表单中还有一些其他控件,我可以从中获取其他参数来保存。
答案 0 :(得分:3)
我想这个示例Simple Avatar Uploader将回答您的所有问题
答案 1 :(得分:1)
试试这个我希望这对你有用它也能看到这个post
Class SomeController{
def uploader(){
}
def save(){
String s=""
CommonsMultipartFile f=request.getFile('fileupload')
final String name =f.getOriginalFilename()
def fos= new FileOutputStream(new File(name))
f.getBytes().each{ fos.write(it) }
s=Base64.encode(f.getBytes())
fos.flush()
fos.close()
render 'done now refresh your source directory to see the file ${s}'
}
和视图'uploader.gsp'
<g:form action="save" enctype="multipart/form-data">
<div class="file-upload">
<label>Choose logo</label> <input id="fileupload" type="file"
name="fileupload" />
</div>
<input type="submit" class="buttons" value="Upload" />
</g:form>
答案 2 :(得分:0)
你好试试这个。
def save = {
def requestInstance = new Request(params)
def requestNumberInstance = new RequestNumber()
if(requestInstance.validate() && requestInstance.save(flush: true)){
println "Saved successfully with ${requestInstance.picture1.length} bytes"
}
else {
println "Save failed"
}