vjame

          優(yōu)化代碼是無止境的
          隨筆 - 65, 文章 - 9, 評論 - 26, 引用 - 0
          數(shù)據(jù)加載中……

          使用FormFile處理文件上傳下載

          1.首先界面設(shè)計,自己搞定 .。。。



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



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



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


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

          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"); // 設(shè)置保存頁面提示信息
                          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

          主站蜘蛛池模板: 平邑县| 名山县| 马尔康县| 桑日县| 景谷| 连山| 色达县| 普兰店市| 双峰县| 财经| 兴安县| 大丰市| 丹棱县| 抚宁县| 化德县| 鄂托克前旗| 越西县| 三台县| 盐边县| 虎林市| 昌黎县| 威远县| 南丰县| 松江区| 久治县| 昭通市| 蓬莱市| 清水县| 尉犁县| 咸丰县| 永吉县| 黄龙县| 荥阳市| 云林县| 来安县| 濮阳市| 台山市| 岚皋县| 察雅县| 延庆县| 莫力|