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 に答える