氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          java中servlet上傳代碼

          使用om-ui上傳的servlet代碼:
          需要jar:
          commons-beanutils-1.8.0.jar
          commons-collections-3.1.jar
          commons-fileupload-1.2.2.jar
          commons-io-2.0.1.jar
          commons-lang-2.5.jar
          commons-logging-1.1.1.jar
          代碼:
          package org.operamasks.servlet;
          import java.io.BufferedOutputStream;
          import java.io.File;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.InputStream;
          import java.util.Date;
          import javax.servlet.ServletConfig;
          import javax.servlet.ServletContext;
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import org.apache.commons.fileupload.FileItemIterator;
          import org.apache.commons.fileupload.FileItemStream;
          import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;
          import org.apache.commons.fileupload.FileUploadException;
          import org.apache.commons.fileupload.servlet.ServletFileUpload;
          public class OmEditorImageUploadServlet extends HttpServlet {
                  // 上傳文件的保存路徑,相對于應用的根目錄
                    private static final String UPLOAD_PIC_PATH = "images/";
                   
                    private static final long MAX_SIZE = 10000000;// 設置上傳文件最大為 1MB
                   
                  byte[] imgBufTemp = new byte[102401];
                  private ServletContext servletContext;
                 
                  private String OMEditorFuncNum;
                  public void init(ServletConfig config) throws ServletException {
                      this.servletContext = config.getServletContext();
                  }
                 
                  @Override
                  protected void doPost(HttpServletRequest request, HttpServletResponse response)
                          throws ServletException, IOException {
                      // 獲取客戶端回調函數名
                      OMEditorFuncNum = request.getParameter("OMEditorFuncNum");
                      response.setContentType("text/html;charset=UTF-8");
                      defaultProcessFileUpload(request, response);
                  }
                  public void doGet(HttpServletRequest request, HttpServletResponse response)
                          throws ServletException, IOException {
                      doPost(request, response);
                  }
                 
                  public String getSavePath(String fileName) {
                      String realPath = servletContext.getRealPath("/");
                      return realPath + UPLOAD_PIC_PATH + fileName;
                  }
                 
                  public String getFileUrl(String fileName){
                      return "../../images/" + fileName;
                  }
                  private void defaultProcessFileUpload(HttpServletRequest request, HttpServletResponse response)
                          throws IOException {
                      ServletFileUpload upload = new ServletFileUpload();
                      upload.setHeaderEncoding("UTF-8");
                      InputStream stream = null;
                      BufferedOutputStream bos = null;
                      String fileUrl = "";
                      try {
                          if (ServletFileUpload.isMultipartContent(request)) {
                              // 設置上傳文件大小的最大限制為100KB
                              upload.setSizeMax(MAX_SIZE);
                              FileItemIterator iter = upload.getItemIterator(request);
                              while (iter.hasNext()) {
                                  FileItemStream item = iter.next();
                                  stream = item.openStream();
                                  if (!item.isFormField()) {
                                      String prefix = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
                                      // 得到文件的擴展名(無擴展名時將得到全名) 
                                      String ext = item.getName().substring(item.getName().lastIndexOf(".") + 1);
                                      String fileName = prefix + "." + ext;
                                      String savePath = getSavePath(fileName);
                                      fileUrl = getFileUrl(fileName);
                                      File file=new File(savePath);
                                      System.out.println(savePath);
                                      System.out.println(fileUrl);
                                      bos = new BufferedOutputStream(new FileOutputStream(file));
                                      int length;
                                      while ((length = stream.read(imgBufTemp)) != -1) {
                                          bos.write(imgBufTemp, 0, length);
                                      }
                                  }
                              }
                              StringBuilder script = new StringBuilder();
                              // 執行客戶端回調函數
                              script.append("
                             
                              response.getWriter().write(script.toString());
                          }
                      } catch (FileUploadException e) {
                          e.printStackTrace();
                          StringBuilder script = new StringBuilder();
                          script.append("
                          response.getWriter().write(script.toString());
                      } finally {
                          if (stream != null) {
                              try {
                                  stream.close();
                              } catch (Exception e) {
                              }
                          }
                          if (bos != null) {
                              try {
                                  bos.close();
                              } catch (Exception e) {
                              }
                          }
                      }
                  }
          }
          一般servlet處理方式:
           public FileUploadServlet() { 
                  super(); 
              } 
           
              public void destroy() { 
                  super.destroy(); // Just puts "destroy" string in log 
                  // Put your code here 
              } 
           
              public void doGet(HttpServletRequest request, HttpServletResponse response) 
                      throws ServletException, IOException { 
                  doPost(request, response); 
              } 
           
              public void doPost(HttpServletRequest request, HttpServletResponse response) 
                      throws ServletException, IOException { 
                  final long MAX_SIZE = 3 * 1024 * 1024;// 設置上傳文件最大為 3M 
                  // 允許上傳的文件格式的列表 
                  final String[] allowedExt = new String[] { "jpg", "jpeg", "gif", "txt", 
                          "doc", "docx", "mp3", "wma", "m4a" }; 
                  response.setContentType("text/html"); 
                  // 設置字符編碼為UTF-8, 這樣支持漢字顯示 
                  response.setCharacterEncoding("UTF-8"); 
           
                  // 實例化一個硬盤文件工廠,用來配置上傳組件ServletFileUpload 
                  DiskFileItemFactory dfif = new DiskFileItemFactory(); 
                  dfif.setSizeThreshold(4096);// 設置上傳文件時用于臨時存放文件的內存大小,這里是4K.多于的部分將臨時存在硬盤 
                  dfif.setRepository(new File(request.getRealPath("/") 
                          + "ImagesUploadTemp"));// 設置存放臨時文件的目錄,web根目錄下的ImagesUploadTemp目錄 
           
                  // 用以上工廠實例化上傳組件 
                  ServletFileUpload sfu = new ServletFileUpload(dfif); 
                  // 設置最大上傳尺寸 
                  sfu.setSizeMax(MAX_SIZE); 
           
                  PrintWriter out = response.getWriter(); 
                  // 從request得到 所有 上傳域的列表 
                  List fileList = null; 
                  try { 
                      fileList = sfu.parseRequest(request); 
                  } catch (FileUploadException e) {// 處理文件尺寸過大異常 
                      if (e instanceof SizeLimitExceededException) { 
                          out.println("文件尺寸超過規定大小:" + MAX_SIZE + "字節"); 
                          out.println("返回"); 
                          return; 
                      } 
                      e.printStackTrace(); 
                  } 
                  // 沒有文件上傳 
                  if (fileList == null || fileList.size() == 0) { 
                      out.println("請選擇上傳文件"); 
                      out.println("返回"); 
                      return; 
                  } 
                  // 得到所有上傳的文件 
                  Iterator fileItr = fileList.iterator(); 
                  // 循環處理所有文件 
                  while (fileItr.hasNext()) { 
                      FileItem fileItem = null; 
                      String path = null; 
                      long size = 0; 
                      // 得到當前文件 
                      fileItem = (FileItem) fileItr.next(); 
                      // 忽略簡單form字段而不是上傳域的文件域( 等) 
                      if (fileItem == null || fileItem.isFormField()) { 
                          continue; 
                      } 
                      // 得到文件的完整路徑 
                      path = fileItem.getName(); 
                      // 得到文件的大小 
                      size = fileItem.getSize(); 
                      if ("".equals(path) || size == 0) { 
                          out.println("請選擇上傳文件 "); 
                          out.println("返回"); 
                          return; 
                      } 
           
                      // 得到去除路徑的文件名 
                      String t_name = path.substring(path.lastIndexOf("\") + 1); 
                      // 得到文件的擴展名(無擴展名時將得到全名) 
                      String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1); 
                      // 拒絕接受規定文件格式之外的文件類型 
                      int allowFlag = 0; 
                      int allowedExtCount = allowedExt.length; 
                      for (; allowFlag < allowedExtCount; allowFlag++) { 
                          if (allowedExt[allowFlag].equals(t_ext)) 
                              break; 
                      } 
                      if (allowFlag == allowedExtCount) { 
                          out.println("請上傳以下類型的文件"); 
                          for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++) 
                              out.println("*." + allowedExt[allowFlag] 
                                      + "   "); 
                          out.println("返回"); 
                          return; 
                      } 
           
                      long now = System.currentTimeMillis(); 
                      // 根據系統時間生成上傳后保存的文件名 
                      String prefix = String.valueOf(now); 
                      // 保存的最終文件完整路徑,保存在web根目錄下的ImagesUploaded目錄下 
                      String u_name = request.getRealPath("/") + "ImagesUploaded/" 
                              + prefix + "." + t_ext; 
                      try { 
                          // 保存文件 
                          fileItem.write(new File(u_name)); 
                          out.println("文件上傳成功. 已保存為: " + prefix + "." + t_ext 
                                  + "   文件大小: " + size + "字節"); 
                          out.println("繼續上傳"); 
                      } catch (Exception e) { 
                          e.printStackTrace(); 
                      } 
           
                  } 
           
              } 
           
              public void init() throws ServletException { 
                  // Put your code here 
              } 

          posted on 2012-10-19 16:24 你爸是李剛 閱讀(1048) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 永寿县| 曲周县| 北碚区| 宣化县| 拉萨市| 凤台县| 大洼县| 越西县| 修武县| 富平县| 澄城县| 禄劝| 涡阳县| 应城市| 靖西县| 苍梧县| 淮北市| 安新县| 成安县| 讷河市| 巨鹿县| 黄龙县| 桑植县| 三门县| 时尚| 韩城市| 安吉县| 靖远县| 南阳市| 互助| 儋州市| 西贡区| 连江县| 岚皋县| 永嘉县| 吉首市| 怀来县| 抚远县| 枣阳市| 读书| 朝阳市|