<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

    項目中所有的文檔全部壓縮之后存儲到數(shù)據(jù)庫,所以需要我們每次從數(shù)據(jù)庫讀取二進(jìn)制然后發(fā)送到客戶端進(jìn)行下載。如何在JSF里面這樣做呢?
    首先對外的方法這樣寫,我設(shè)置了按鈕的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獲得對象的實(shí)例,第二句是將所有相應(yīng)信息傳輸給下載的公共方法,同時解壓縮了相應(yīng)的二進(jìn)制。

    下面是下載的公共方法
    /**
         * 向客戶端發(fā)送需要下載的文件
         * 
    @param faces 當(dāng)前FacesContext
         * 
    @param content 文件的字節(jié)數(shù)組
         * 
    @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,經(jīng)過測試,在IE6下(其他瀏覽器沒測試過),會導(dǎo)致無法打開臨時文件(我的是word文檔),而且經(jīng)常出現(xiàn)無法下載文件。

    ---------------------------------------------------------
    專注移動開發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2008-12-23 10:13 TiGERTiAN 閱讀(1395) 評論(0)  編輯  收藏 所屬分類: Java 、JSF
    主站蜘蛛池模板: 嫩草影院在线免费观看| 亚洲区小说区图片区QVOD| 亚洲阿v天堂在线2017免费| 亚洲自偷自拍另类12p| 亚洲综合一区国产精品| 在线免费播放一级毛片| 卡1卡2卡3卡4卡5免费视频| 亚洲综合偷自成人网第页色| 国产啪精品视频网站免费尤物| 成年女性特黄午夜视频免费看| 国产亚洲免费的视频看| 亚洲色大成网站www永久男同| 国产免费AV片在线播放唯爱网| 国产AV无码专区亚洲AV毛网站| 久久人午夜亚洲精品无码区| 亚洲免费在线视频播放| 亚洲中文字幕不卡无码| 午夜在线亚洲男人午在线| 国产免费不卡v片在线观看| 亚洲色偷偷色噜噜狠狠99网| 免费高清资源黄网站在线观看| 亚洲国产精品网站久久| 国内精品久久久久影院免费| 亚洲精品乱码久久久久久蜜桃| 亚洲国产欧美日韩精品一区二区三区 | 国产午夜鲁丝片AV无码免费| 亚洲喷奶水中文字幕电影| 免费观看91视频| 亚洲精品中文字幕无乱码| 久热免费在线视频| 亚洲综合AV在线在线播放| 香港a毛片免费观看 | 亚洲午夜精品一区二区| 国产日韩久久免费影院| 亚洲精品无码成人片在线观看| a级毛片在线视频免费观看| 亚洲高清无在码在线电影不卡| 久久精品成人免费观看| 国产精品亚洲一区二区麻豆| 国产一卡二卡3卡四卡免费| 亚洲二区在线视频|