<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 閱讀(1400) 評論(0)  編輯  收藏 所屬分類: Java 、JSF
    主站蜘蛛池模板: 亚洲精品无码专区久久久| 四虎影视久久久免费观看| 国产精品亚洲一区二区三区在线观看 | 在线免费视频你懂的| 114一级毛片免费| AV在线播放日韩亚洲欧| 国产精品亚洲精品青青青| a毛片视频免费观看影院| 国产在线a不卡免费视频| 亚洲ts人妖网站| 免费A级毛片无码专区| 中文字幕在亚洲第一在线| 免费大片黄在线观看| 免费一级毛片一级毛片aa| 亚洲日韩在线中文字幕综合| 蜜臀91精品国产免费观看| 亚洲中文字幕无码久久| 最近最新MV在线观看免费高清| 亚洲白嫩在线观看| 暖暖日本免费中文字幕| 亚洲国产精品线在线观看| 国产亚洲免费的视频看 | 亚洲乱亚洲乱妇24p| 最近中文字幕mv免费高清视频7| 亚洲国产美女福利直播秀一区二区 | 亚洲嫩草影院在线观看| 亚洲无码精品浪潮| 成年男女免费视频网站| 99re热精品视频国产免费| 麻豆91免费视频| 亚洲精品无码午夜福利中文字幕 | 亚洲精品国产字幕久久不卡| 日本特黄a级高清免费大片| 国产亚洲蜜芽精品久久| 亚洲六月丁香六月婷婷色伊人 | 区久久AAA片69亚洲| 午夜免费福利小电影| 在线观看日本亚洲一区| 97se亚洲综合在线| 成年女人毛片免费播放视频m| 四虎国产成人永久精品免费|