<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
    主站蜘蛛池模板: 亚洲成A∨人片在线观看无码| 亚洲日本一区二区一本一道| 久久久久亚洲AV成人无码| 永久免费无码网站在线观看个| 亚洲AⅤ永久无码精品AA| 国产成人精品免费久久久久| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 日韩精品亚洲aⅴ在线影院| 有色视频在线观看免费高清在线直播| 一区国严二区亚洲三区| www成人免费观看网站| 国产亚洲精品成人a v小说| 黄床大片免费30分钟国产精品| 在线观看亚洲精品国产| 成人妇女免费播放久久久| 亚洲乱码中文字幕综合| 在线观看免费黄网站| 亚洲av鲁丝一区二区三区| 99久9在线|免费| 亚洲国产美女精品久久| 免费毛片在线看片免费丝瓜视频 | 毛片免费观看网址| 国产成人综合亚洲一区| 中文字幕在亚洲第一在线| 久久青草免费91线频观看不卡 | 91成人免费福利网站在线| 亚洲国产精品无码久久久不卡| 99久久精品免费精品国产| 亚洲人成网站色在线观看| 四虎免费久久影院| a色毛片免费视频| 亚洲第一成人在线| 亚洲VA综合VA国产产VA中| 国产无遮挡无码视频免费软件| 亚洲国产日韩在线成人蜜芽 | 亚洲日韩中文在线精品第一| 在线观看人成视频免费无遮挡 | 在线观看免费成人| 一级黄色毛片免费看| 亚洲综合久久1区2区3区| 日本不卡在线观看免费v|