1

我想知道如何将上传的图像保存在 grails 中。

情况:我有一个带有表单的 gsp 页面,其中包含文件上传。我试图从文件上传中获取数据,但它不起作用。

在控制器中:

    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>

有这方面经验的人吗?

这可能是另一种方法,但是由于我在使用文件上传选择图像时在视图中调整,我可以从控制器中获取图像数据吗?

提前致谢!

更新:

需要明确的是,表单中还有一些其他控件,我从中获取其他参数来保存。

4

3 回答 3

3

我猜这个例子Simple Avatar Uploader会回答你所有的问题

于 2013-05-31T08:52:10.120 回答
1

试试这个,我希望这对你有用

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>
于 2013-11-01T16:17:15.003 回答
0

嗨试试这个。

默认保存 = {

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"
}
于 2013-05-31T08:35:57.773 回答