<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0
    在grails中實現上傳文件也很簡單。它可以使用spring里面的CommonsMultipartFile類來處理上傳文件.
    可以對文件的一些屬性設置,比如大小:
    <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize">
    <value>1000000</value>
    </property>
    </bean>
    當然gsp頁面需要在form里面設置enctype="multipart/form-data"
    <g:form method="post" action="save" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <input type="submit"/>
    </g:form>

    下面就是處理上傳的文件了:

    import org.springframework.web.multipart.MultipartHttpServletRequest
    import org.springframework.web.multipart.commons.CommonsMultipartFile

    class UploadController {
        static String uploadDir = "uploadfile"
        def index = {
            render(view:"upload")
        }
        def save = {
            if (request instanceof MultipartHttpServletRequest) {
                MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request
                CommonsMultipartFile orginalFile = (CommonsMultipartFile) multiRequest.getFile("file")
                // 判斷是否上傳文件
                if (orginalFile != null && !orginalFile.isEmpty()) {
                    // 獲取系統默認文件路徑分隔符
                    def separator = System.getProperty("file.separator")
                    println "file separator is ${separator} "
                    // 獲取原文件名稱
                    String originalFilename = orginalFile.getOriginalFilename()
                    // 獲取上傳文件擴展名
                    def extension = originalFilename.substring(originalFilename.indexOf(".") + 1)
                    println "extension is ${extension}"
                    def name = ".." + separator + uploadDir + separator + orginalFile.getOriginalFilename()
                    println "file name is : ${name}"
                    // 使用存放文件的絕對路徑創建輸出流
                     /**
                    DataOutputStream out = new DataOutputStream(new FileOutputStream(name))
                    InputStream is = null
                    try {
                        is = orginalFile.getInputStream()
                        byte[] buffer = new byte[1024]
                        while (is.read(buffer) > 0) {
                          out.write(buffer) // 寫入磁盤
                        }
                    } catch (IOException exception) {
                        exception.printStackTrace()
                    } finally {
                        if (is != null) {
                            is.close()
                        }
                        if (out != null) {
                            out.close()
                        }
                    }
                    */
                    orginalFile.transferTo(new File(name))
                    render(view:"success")
                }
              
            } else {
                println "No multipart"
            }
        }
    }


    posted on 2008-06-04 23:50 周銳 閱讀(3111) 評論(1)  編輯  收藏 所屬分類: Groovy&Grails
    主站蜘蛛池模板: 久久久无码精品亚洲日韩软件 | 性无码免费一区二区三区在线 | 亚洲AV无码乱码在线观看裸奔 | 亚洲国产韩国一区二区| 亚洲午夜无码毛片av久久京东热| 久久精品亚洲日本波多野结衣| 中文字幕视频在线免费观看| 亚洲中文字幕视频国产| 黄视频在线观看免费| 人禽杂交18禁网站免费| 亚洲中文字幕久久精品蜜桃| 成人片黄网站色大片免费| 亚洲熟妇无码一区二区三区| 日韩一区二区在线免费观看| 日本高清免费中文在线看| 中文字幕第一页亚洲| 久久免费高清视频| 亚洲激情黄色小说| 在线免费不卡视频| 日韩一区二区三区免费播放| 国产亚洲精品a在线观看 | 国内精品免费在线观看| 成人永久免费福利视频网站| 亚洲天天在线日亚洲洲精| 国产国产人免费视频成69堂| 亚洲色大成网站www| 又爽又高潮的BB视频免费看| 很黄很污的网站免费| 91丁香亚洲综合社区| 亚洲第一永久AV网站久久精品男人的天堂AV | 无码人妻精品中文字幕免费 | jizz在线免费观看| 成年女人永久免费观看片| 久久亚洲精品专区蓝色区| 国产成人免费高清在线观看| 久久久WWW免费人成精品| 亚洲毛片免费视频| av无码东京热亚洲男人的天堂| 亚洲av无码专区首页| 国产亚洲精品一品区99热| 999国内精品永久免费视频|