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 閱讀(3005) 評論(0)  編輯  收藏 所屬分類: Java Web

          主站蜘蛛池模板: 宜君县| 桃源县| 浮梁县| 嘉峪关市| 师宗县| 宣武区| 涡阳县| 蕲春县| 沂水县| 齐齐哈尔市| 双牌县| 滨海县| 昆山市| 邮箱| 泸州市| 西峡县| 四子王旗| 河北省| 监利县| 七台河市| 历史| 五华县| 台中市| 凉城县| 八宿县| 沙河市| 霞浦县| 栖霞市| 马龙县| 昆明市| 资中县| 乌苏市| 大城县| 濉溪县| 蓬莱市| 铁岭市| 青浦区| 方山县| 承德县| 富宁县| 万宁市|