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

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

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

    e代劍客——溫柔一刀

    生活就像海洋,只有意志堅強的人,才能到達彼岸

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      76 隨筆 :: 7 文章 :: 215 評論 :: 0 Trackbacks

    實現圖片上傳
      用戶必須能夠上傳圖片,因此需要文件上傳的功能。比較常見的文件上傳組件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUpload(http://www.servlets.com/cos),Spring已經完全集成了這兩種組件,這里我們選擇Commons FileUpload。
      由于Post一個包含文件上傳的Form會以multipart/form-data請求發送給服務器,必須明確告訴DispatcherServlet如何處理MultipartRequest。首先在dispatcher-servlet.xml中聲明一個MultipartResolver:

    <bean id="multipartResolver"
    ?????? class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    ??????? <!-- 設置上傳文件的最大尺寸為1MB -->
    ??????? <property name="maxUploadSize">
    ??????? <value>1048576</value>
    ??? </property>
    </bean>

      這樣一旦某個Request是一個MultipartRequest,它就會首先被MultipartResolver處理,然后再轉發相應的Controller。
      在UploadImageController中,將HttpServletRequest轉型為MultipartHttpServletRequest,就能非常方便地得到文件名和文件內容:

    public ?ModelAndView?handleRequest(HttpServletRequest?request,?HttpServletResponse?response)? throws ?Exception? {
    ????
    // ?轉型為MultipartHttpRequest:
    ????MultipartHttpServletRequest?multipartRequest? = ?(MultipartHttpServletRequest)?request;
    ????
    // ?獲得文件:
    ????MultipartFile?file? = ?multipartRequest.getFile( " file " );
    ????
    // ?獲得文件名:
    ????String?filename? = ?file.getOriginalFilename();
    ????
    // ?獲得輸入流:
    ????InputStream?input? = ?file.getInputStream();
    ????
    // ?寫入文件
    ????
    ????
    ????
    // 或者:
    ????File?source? = ? new ?File(localfileName.toString());
    ????multipartFile.transferTo(source);
    }

    生成縮略圖 (目錄)
      當用戶上傳了圖片后,必須生成縮略圖以便用戶能快速瀏覽。我們不需借助第三方軟件,JDK標準庫就包含了圖像處理的API。我們把一張圖片按比例縮放到120X120大小,以下是關鍵代碼:

    public ? static ? void ?createPreviewImage(String?srcFile,?String?destFile)? {
    ????
    try ? {
    ????????File?fi?
    = ? new ?File(srcFile);? // ?src
    ????????File?fo? = ? new ?File(destFile);? // ?dest
    ????????BufferedImage?bis? = ?ImageIO.read(fi);


    ????????
    int ?w? = ?bis.getWidth();
    ????????
    int ?h? = ?bis.getHeight();
    ????????
    double ?scale? = ?( double )w / h;
    ????????
    int ?nw? = ?IMAGE_SIZE;? // ?final?int?IMAGE_SIZE?=?120;
    ???????? int ?nh? = ?(nw? * ?h)? / ?w;
    ????????
    if (?nh > IMAGE_SIZE?)? {
    ????????????nh?
    = ?IMAGE_SIZE;
    ????????????nw?
    = ?(nh? * ?w)? / ?h;
    ????????}

    ????????
    double ?sx? = ?( double )nw? / ?w;
    ????????
    double ?sy? = ?( double )nh? / ?h;


    ????????transform.setToScale(sx,sy);
    ????????AffineTransformOp?ato?
    = ? new ?AffineTransformOp(transform,? null );
    ????????BufferedImage?bid?
    = ? new ?BufferedImage(nw,?nh,?BufferedImage.TYPE_3BYTE_BGR);
    ????????ato.filter(bis,bid);
    ????????ImageIO.write(bid,?
    " jpeg " ,?fo);
    ????}
    ? catch (Exception?e)? {
    ????????e.printStackTrace();
    ????????
    throw ? new ?RuntimeException( " Failed?in?create?preview?image.?Error:? " ? + ?e.getMessage());
    ????}

    }


    posted on 2006-08-17 10:28 溫柔一刀 閱讀(853) 評論(0)  編輯  收藏 所屬分類: 開源框架
    聯系偶 zhupanjava@gmail.com 溫柔一刀
    主站蜘蛛池模板: a毛片免费播放全部完整| 黑人大战亚洲人精品一区| 久久精品中文字幕免费| 国内成人精品亚洲日本语音| 亚洲理论片中文字幕电影| 亚洲中文字幕无码一区| 免费在线观看黄网| 成年女人毛片免费播放人| 2020因为爱你带字幕免费观看全集| 久久久久久毛片免费看| 人妻仑刮八A级毛片免费看| 亚洲偷自拍另类图片二区| 亚洲日本视频在线观看| 亚洲av色福利天堂| 国产成A人亚洲精V品无码性色 | 亚洲男同帅GAY片在线观看| 免费国产成人高清视频网站| 成年在线观看免费人视频草莓| 四虎在线成人免费网站| 中文字幕免费高清视频| 久久这里只精品99re免费| 二个人看的www免费视频| 一二三区免费视频| 一区二区三区在线免费观看视频| 看Aⅴ免费毛片手机播放| 美女视频黄频a免费观看| 亚洲av日韩av永久在线观看| 亚洲国产日韩a在线播放| 国产AV旡码专区亚洲AV苍井空| 色天使亚洲综合在线观看| 亚洲三级中文字幕| 香蕉大伊亚洲人在线观看| 亚洲精品第一综合99久久| 久久久国产亚洲精品| 亚洲国产成人久久综合| 久久久久亚洲国产AV麻豆 | 国产美女在线精品免费观看| 三年片在线观看免费观看高清电影| 青苹果乐园免费高清在线| 午夜免费福利在线| 波多野结衣中文一区二区免费|