vjame

          優化代碼是無止境的
          隨筆 - 65, 文章 - 9, 評論 - 26, 引用 - 0
          數據加載中……

          使用FormFile處理文件上傳下載

          1.首先界面設計,自己搞定 .。。。



          2. 然后在jsp頁面中定義文件上傳標簽,name 要和From中定義的FormFile變量名稱一致



          3. 在Form中定義FormFile私有變量, 它和文件上傳標簽名稱要一樣。



          4.  ,這里要先在po類里面定義個字節變量content 接收上傳來的文件內容


          5. 在Action的增加方法中,首先判斷頁面上是否有文件被上傳,然后把內容設置到po類里面去 ,這里getFileData()得到的是字節.

          6. 文件需要提交下載時,在Action中加入一下代碼

              //下載公文附件
              public ActionForward download(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
                  
                  DocumentActionForm daf 
          = (DocumentActionForm)form;
                  
                  Document document 
          = documentManager.findDocument(daf.getId());
                  
                  response.reset();
                  response.setContentType(
          "application/x-download;charset=GBK");
                  response.setHeader(
          "Content-Disposition""attachment;filename=temp.doc");
                  
                  response.getOutputStream().write(document.getContent());
                  
                  response.getOutputStream().flush();
                  response.getOutputStream().close();
                  
                  
          //指示struts,不要對返回值進行處理
                  return null;
              }

          7. 程序運行效果
          另外一種方法在Action中添加download方法也是可以達到下載功能的目的
              public ActionForward downloadFile(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response) 
          throws Exception{

                  String docId 
          = request.getParameter("docId");
                  Doc doc 
          = baseService.find(docId);
                  SerializableBlob serBlob 
          = null;
                  
          if(doc!= null){
                      serBlob 
          = (SerializableBlob) doc.getContentBinary();
                  }

                  Blob blob 
          = serBlob.getWrappedBlob();
                  
          try {
                      
          if (blob != null) {
                          response.reset();
                          BufferedInputStream in 
          = new BufferedInputStream(
                                  blob.getBinaryStream()); 
          // 輸入流
                          response.setContentType("bin:charset=utf-8");
                          response.setHeader(
                                          
          "Content-Disposition",
                                          
          "attachment; filename=temp.doc"); // 設置保存頁面提示信息
                          byte[] b = new byte[100];
                          
          int len;
                          
          while ((len = in.read(b)) > 0) {
                              response.getOutputStream().write(b, 
          0, len);
                          }
                          in.close();
                      }
                  } 
          catch (Exception e) {
                      
          return null;
                  }
                  
          return null;
              }

          posted on 2008-11-07 01:24 lanjh 閱讀(3010) 評論(0)  編輯  收藏 所屬分類: Java Web

          主站蜘蛛池模板: 鄂尔多斯市| 龙山县| 莱芜市| 霸州市| 军事| 安吉县| 靖远县| 澄迈县| 斗六市| 铁力市| 龙口市| 仁怀市| 独山县| 海门市| 什邡市| 金塔县| 汶川县| 彭州市| 平南县| 平罗县| 孟津县| 宜春市| 东乌| 通城县| 朝阳市| 海淀区| 文昌市| 上虞市| 越西县| 邹城市| 凤翔县| 根河市| 宾川县| 巴马| 获嘉县| 曲水县| 通州区| 安图县| 扶沟县| 綦江县| 武山县|