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

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

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

    隨筆-348  評論-598  文章-0  trackbacks-0

    項目中所有的文檔全部壓縮之后存儲到數據庫,所以需要我們每次從數據庫讀取二進制然后發送到客戶端進行下載。如何在JSF里面這樣做呢?
    首先對外的方法這樣寫,我設置了按鈕的actionListener的屬性

        public void viewContent(ActionEvent event)
        
    {
            
    try
            
    {
                ParkLawDTO obj 
    = this.getEnterpriseEnterInBODelegate().getParkLawById(((ParkLawDTO)this.getParkLawDataModel().getRowData()).getParkLaw().getPlId());
                Common.downloadFile(FacesContext.getCurrentInstance(), ZipHelper.unzip(obj.getParkLaw().getLawContent()), obj.getParkLaw().getLawName()
    +".doc""application/msword;charset=utf-8");
            }
    catch(Exception e){
                info(
    "下載文件出錯", e);
            }

            
        }
    第一句是從WebService獲得對象的實例,第二句是將所有相應信息傳輸給下載的公共方法,同時解壓縮了相應的二進制。

    下面是下載的公共方法
    /**
         * 向客戶端發送需要下載的文件
         * 
    @param faces 當前FacesContext
         * 
    @param content 文件的字節數組
         * 
    @param fileName 客戶端接收的文件名
         * 
    @param contentType http的content-type
         
    */

        
    public static void downloadFile(FacesContext faces, byte[] content, String fileName, String contentType)
        
    {
            
    try
            
    {
                HttpServletResponse response 
    = (HttpServletResponse) faces.getExternalContext().getResponse();    
                response.setHeader(
    "Content-disposition""filename="+ URLEncoder.encode(fileName, "utf-8"));
                response.setContentType(contentType);
                response.setContentLength(content.length);
                ServletOutputStream sos 
    = response.getOutputStream();
                sos.write(content);
                sos.flush();
                sos.close();
                
    //需要呼叫Complete
                faces.responseComplete();
               
            }
    catch(Exception e){
                e.printStackTrace();
            }

        }

    Content-disposition中一定不可以加attachment,經過測試,在IE6下(其他瀏覽器沒測試過),會導致無法打開臨時文件(我的是word文檔),而且經常出現無法下載文件。

    ---------------------------------------------------------
    專注移動開發

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2008-12-23 10:13 TiGERTiAN 閱讀(1401) 評論(0)  編輯  收藏 所屬分類: JavaJSF
    主站蜘蛛池模板: 亚洲AV无码一区二区乱孑伦AS| 四虎影院免费在线播放| 在线亚洲精品福利网址导航| 亚洲精品蜜夜内射| 永久免费av无码网站大全| 亚洲精品成a人在线观看☆| 女性自慰aⅴ片高清免费| 亚洲AV第一成肉网| 亚洲免费中文字幕| 色偷偷亚洲第一综合| 成人国产mv免费视频| 国产AV日韩A∨亚洲AV电影| 又黄又爽无遮挡免费视频| 黄色网址在线免费观看| 国产啪亚洲国产精品无码| 亚洲黄页网在线观看| 免费观看理论片毛片| 最好2018中文免费视频| 亚洲中文字幕在线第六区| 亚洲a一级免费视频| 亚洲欧洲日产专区| 精品免费国产一区二区三区| 激情吃奶吻胸免费视频xxxx| MM131亚洲国产美女久久| 久久精品视频免费播放| 亚洲香蕉在线观看| 国产精品四虎在线观看免费 | 精品国产免费一区二区| 免费人成又黄又爽的视频在线电影| 国产日产亚洲系列最新| 麻花传媒剧在线mv免费观看| 亚洲中文字幕无码中文字| 亚洲av成人一区二区三区在线观看| 香蕉视频在线免费看| 亚洲狠狠狠一区二区三区| 国产在线播放免费| 很黄很污的网站免费| 亚洲AV无码专区在线观看成人| 中文字幕亚洲无线码a| 波多野结衣在线免费观看| 另类小说亚洲色图|