前臺(tái)使用SWFUpload:

          <%@ page  contentType="text/html;  charset=GBK"%>
          <%@ page import="javax.servlet.*"%>
          <%@ page import="javax.servlet.http.*"%>
          <%@ page import="com.yourcompany.util.*"%>
          <html>
          <head>
           <link href="js/default.css" rel="stylesheet" type="text/css" />
           <script type="text/javascript" src="js/swfupload.js"></script>
           <script type="text/javascript" src="js/handlers.js"></script>
             <script src="js/jquery.js" type="text/javascript"></script>
             <script type="text/javacript">
             function g(){
            $.ajax({
              url: 'upload2.jsp',
              date: {c: $('#c').val(), c: $('#c').val()},
              error: function() { alert"fail"},
              success: function(response) { ... }
              });
            }
             </script>
           <script type="text/javascript">

           var swfu;
            window.onload = function () {
            
             swfu = new SWFUpload({
              // Backend Settings
              upload_url: "upload2.jsp", // Relative to the SWF file
              post_params: {"product1": "1"},
                  
                  use_query_string:false,
              // File Upload Settings
              file_size_limit : "2048", // 2MB
              file_types : "*.jpg",
              file_types_description : "JPG Images",
              file_upload_limit : "0",

              // Event Handler Settings - these functions as defined in Handlers.js
              //  The handlers are not part of SWFUpload but are part of my website and control how
              //  my website reacts to the SWFUpload events.
              file_queue_error_handler : fileQueueError,
              file_dialog_complete_handler : fileDialogComplete,
              upload_progress_handler : uploadProgress,
              upload_start_handler : uploadStart,
              upload_error_handler : uploadError,
              upload_success_handler : uploadSuccess,
              upload_complete_handler : uploadComplete,

           


              // Flash Settings
              flash_url : "js/swfupload_f9.swf", // Relative to this file

              custom_settings : {
               upload_target : "divFileProgressContainer"
              },
              
              // Debug Settings
              debug: false
             });
            }

          function uploadStart(file) {
          var post_params = this.settings.post_params;
          post_params.product = document.getElementById("product").value;
          this.setPostParams(post_params);
          return true;
          }
           </script>
          </head>
            <div id="SWFUploadTarget">
          <body>

            <div>
             <form action="upload2.jsp" method="get">
              <button id="btnBrowse" type="button" style="padding: 5px;" onClick="swfu.selectFiles(); this.blur();"><img src="images/page_white_add.png" style="padding-right: 3px; vertical-align: bottom;">請(qǐng)選擇圖片<span style="font-size: 7pt;">(2 MB Max)</span></button>
                              請(qǐng)輸入產(chǎn)品ID<input type="text" name="product" id="product" value="">
             </form>
            </div>
            <div id="divFileProgressContainer" style="height: 75px;"></div>
            <div id="thumbnails"></div>
           </div>
          </body>
          <html>

          后臺(tái)使用SmartUpload:

          <%@ page contentType="text/html;charset=gb2312" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,
          java.sql.*,com.jspsmart.upload.*,java.util.*,com.yourcompany.util.*"%>
          <%
          SmartUpload mySmartUpload =new SmartUpload();
          long file_size_max=4000000;
          //add


          //初始化
           mySmartUpload.initialize(pageContext);
          //只允許上載此類(lèi)文件
          try {
          mySmartUpload.setAllowedFilesList("jpg,gif");
          //上載文件
          mySmartUpload.upload();
          } catch (Exception e){
          %>
            <SCRIPT language=javascript>
            alert("只允許上傳.jpg和.gif類(lèi)型圖片文件");
            window.location=''upfile.jsp'';
            </script>
          <%
          }
          //try{

              com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
              if (myFile.isMissing()){%>
             <SCRIPT language=javascript>
             alert("請(qǐng)先選擇要上傳的文件");
             window.location=''upfile.jsp'';
             </script>
              <%}
              else{
           
           String fileName2="",ext="",testvar="";
           String productname=mySmartUpload.getRequest().getParameter("product");
           String url="/uploadfile/"+productname+"/";      //應(yīng)保證在根目錄中有此目錄的存在


           java.io.File file1 = new java.io.File(request.getRealPath("/") + url );
             if(!file1.exists())
            {
             file1.mkdir();
            }


                //String myFileName=myFile.getFileName(); //取得上載的文件的文件名
             ext= myFile.getFileExt();      //取得后綴名
             int file_size=myFile.getSize();     //取得文件的大小 
             String saveurl="";
             if(file_size<file_size_max){

          int temp=1,temp2=0;
              String[] a=myFile.getFileName().split(".jpg");
              String myFileNameo = productname+"_00_pic_big";
           String myFileName = productname+"_0"+temp;
             
              Calendar calendar = Calendar.getInstance();
              String filename = String.valueOf(calendar.getTimeInMillis());
              saveurl=request.getRealPath("/")+url;
              saveurl+=myFileNameo+"."+ext;          //保存路徑
             

             
              myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
            //  java.io.File  f1   =   new  java.io.File (saveurl);
            //  java.io.File    f2   =   new   java.io.File (request.getRealPath("/")+url+myFileName+"_0_big.jpg");  
            //  f1.renameTo(f2); 
              //out.print(filename);
          //-----------------------上傳完成,開(kāi)始生成縮略圖------------------------- 
           
           
           
           
           com.yourcompany.util.DirList dirlist = new com.pixel.util.DirList();
            String[] dir =dirlist.list(request.getRealPath("/") + url );


          for(int i=0;i<dir.length;i++){
            //for (String i : dir){
            String[] split = dir[i].split("\\.");
                if(split[1].equals("jpg")){  
                String[] split2=split[0].split("\\_");
                 //split2[1]=01                
             if(Integer.parseInt(split2[1])>0&Integer.parseInt(split2[1])>=temp2){
             temp2=Integer.parseInt(split2[1])+1;
             }
             if(Integer.parseInt(split2[1])==0){
             temp2=1;
             }
               }

          if(temp2<=10){
          myFileName = productname+"_0"+temp2;
          }else{
          myFileName = productname+"_"+temp2;
          }

           

             
           //myFileName = mySmartUpload.getRequest().getParameter("product");
              java.io.File file = new java.io.File(saveurl);        //讀入剛才上傳的文件
              String newurl=request.getRealPath("/")+url+myFileName+"_70_min."+ext;  //新的縮略圖保存地址
              Image src = javax.imageio.ImageIO.read(file);                     //構(gòu)造Image對(duì)象
              float tagsize=70;
              int old_w=src.getWidth(null);                                     //得到源圖寬
              int old_h=src.getHeight(null);  
              int new_w=0;
              int new_h=0;                            //得到源圖長(zhǎng)
              int tempsize;
              float tempdouble;
              if(old_w>old_h){
               tempdouble=old_w/tagsize;
              }else{
               tempdouble=old_h/tagsize;
              }
              new_w=Math.round(old_w/tempdouble);
              new_h=Math.round(old_h/tempdouble);//計(jì)算新圖長(zhǎng)寬
              BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
              tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);       //繪制縮小后的圖
              FileOutputStream newimage=new FileOutputStream(newurl);          //輸出到文件流
              JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);      
              encoder.encode(tag);                                               //近JPEG編碼
               
                      //讀入剛才上傳的文件
              newurl=request.getRealPath("/")+url+myFileName+"_130_min."+ext;  //新的縮略圖保存地址
              //Image src = javax.imageio.ImageIO.read(file);                     //構(gòu)造Image對(duì)象
              tagsize=130;
            //  int old_w2=src2.getWidth(null);                                     //得到源圖寬
            //  int old_h2=src2.getHeight(null);  
             // int new_w=0;
             // int new_h=0;                            //得到源圖長(zhǎng)
             // int tempsize;
            //  float tempdouble;
              if(old_w>old_h){
               tempdouble=old_w/tagsize;
              }else{
               tempdouble=old_h/tagsize;
              }
              new_w=Math.round(old_w/tempdouble);
              new_h=Math.round(old_h/tempdouble);//計(jì)算新圖長(zhǎng)寬
               tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
              tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);       //繪制縮小后的圖
              newimage=new FileOutputStream(newurl);          //輸出到文件流
              encoder = JPEGCodec.createJPEGEncoder(newimage);      
              encoder.encode(tag);                                               //近JPEG編碼
             
               newurl=request.getRealPath("/")+url+myFileName+"_180_min."+ext;  //新的縮略圖保存地址
              //Image src = javax.imageio.ImageIO.read(file);                     //構(gòu)造Image對(duì)象
              tagsize=180;
            //  int old_w2=src2.getWidth(null);                                     //得到源圖寬
            //  int old_h2=src2.getHeight(null);  
             // int new_w=0;
             // int new_h=0;                            //得到源圖長(zhǎng)
             // int tempsize;
            //  float tempdouble;
              if(old_w>old_h){
               tempdouble=old_w/tagsize;
              }else{
               tempdouble=old_h/tagsize;
              }
              new_w=Math.round(old_w/tempdouble);
              new_h=Math.round(old_h/tempdouble);//計(jì)算新圖長(zhǎng)寬
               tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
              tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);       //繪制縮小后的圖
              newimage=new FileOutputStream(newurl);          //輸出到文件流
              encoder = JPEGCodec.createJPEGEncoder(newimage);      
              encoder.encode(tag);                                               //近JPEG編碼

               newurl=request.getRealPath("/")+url+myFileName+"_500_min."+ext;  //新的縮略圖保存地址
              //Image src = javax.imageio.ImageIO.read(file);                     //構(gòu)造Image對(duì)象
              tagsize=500;
            //  int old_w2=src2.getWidth(null);                                     //得到源圖寬
            //  int old_h2=src2.getHeight(null);  
             // int new_w=0;
             // int new_h=0;                            //得到源圖長(zhǎng)
             // int tempsize;
            //  float tempdouble;
              if(old_w>old_h){
               tempdouble=old_w/tagsize;
              }else{
               tempdouble=old_h/tagsize;
              }
              new_w=Math.round(old_w/tempdouble);
              new_h=Math.round(old_h/tempdouble);//計(jì)算新圖長(zhǎng)寬
               tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
              tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);       //繪制縮小后的圖
              newimage=new FileOutputStream(newurl);          //輸出到文件流
              encoder = JPEGCodec.createJPEGEncoder(newimage);      
              encoder.encode(tag);                                               //近JPEG編碼

           newurl=request.getRealPath("/")+url+myFileName+"_800_min."+ext;  //新的縮略圖保存地址
              //Image src = javax.imageio.ImageIO.read(file);                     //構(gòu)造Image對(duì)象
              tagsize=800;
            //  int old_w2=src2.getWidth(null);                                     //得到源圖寬
            //  int old_h2=src2.getHeight(null);  
             // int new_w=0;
             // int new_h=0;                            //得到源圖長(zhǎng)
             // int tempsize;
            //  float tempdouble;
              if(old_w>old_h){
               tempdouble=old_w/tagsize;
              }else{
               tempdouble=old_h/tagsize;
              }
              new_w=Math.round(old_w/tempdouble);
              new_h=Math.round(old_h/tempdouble);//計(jì)算新圖長(zhǎng)寬
               tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
              tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);       //繪制縮小后的圖
              newimage=new FileOutputStream(newurl);          //輸出到文件流
              encoder = JPEGCodec.createJPEGEncoder(newimage);      
              encoder.encode(tag);                                               //近JPEG編碼
           
           
            newimage.close(); 

             }
             else{
              out.print("<SCRIPT language=''javascript''>");
              out.print("alert(''上傳文件大小不能超過(guò)"+(file_size_max/1000)+"K'');");
              out.print("window.location=''upfile.jsp;''");
              out.print("</SCRIPT>");
             }
            }
          //}catch (Exception e){

          //e.toString();

          //}
          %>



          其中:
          com.yourcompany.util.DirList dirlist = new com.yourcompany.DirList();
            String[] dir =dirlist.list(request.getRealPath("/") + url );


          for(int i=0;i<dir.length;i++){
            //for (String i : dir){
            String[] split = dir[i].split("\\.");
                if(split[1].equals("jpg")){  
                String[] split2=split[0].split("\\_");
                 //split2[1]=01                
             if(Integer.parseInt(split2[1])>0&Integer.parseInt(split2[1])>=temp2){
             temp2=Integer.parseInt(split2[1])+1;
             }
             if(Integer.parseInt(split2[1])==0){
             temp2=1;
             }
               }

          if(temp2<=10){
          myFileName = productname+"_0"+temp2;
          }else{
          myFileName = productname+"_"+temp2;
          }


          這部分調(diào)用一個(gè)方法,讀取目錄里的文件名,并重新按照01、02、03的順序命名。
          獲取目錄里的文件名的類(lèi):

          import java.io.File;
          import java.io.FilenameFilter;
          import java.util.Arrays;
          import java.util.Comparator;
          import java.util.regex.Pattern;
          public class DirList {
           public String[] list(String thepath) {  
            File path = new File(thepath);  
            String[] list;  
            list = path.list();  
            Arrays.sort(list, new AlphabeticComparator());
            return list;
           }
          }

          class DirFilter implements FilenameFilter { 
           private Pattern pattern;  public DirFilter(String regex) {
            pattern = Pattern.compile(regex);  }
           public boolean accept(File dir, String name) {  
            // Strip path information, search for regex:  
            return pattern.matcher(new File(name).getName()).matches();
            }
           }

          class AlphabeticComparator implements Comparator {
           public int compare(Object o1, Object o2) {  
            String s1 = (String) o1;    String s2 = (String) o2;   
            return s1.toLowerCase().compareTo(s2.toLowerCase()); 
            }
           }

          posted on 2008-08-13 11:57 lzj520 閱讀(1327) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 個(gè)人學(xué)習(xí)日記java api
          主站蜘蛛池模板: 鹤壁市| 隆回县| 萍乡市| 二手房| 丁青县| 专栏| 漳州市| 天长市| 东宁县| 南京市| 龙井市| 太康县| 牙克石市| 阳城县| 泽州县| 雷波县| 吉林市| 伊宁市| 兴和县| 潍坊市| 天津市| 南昌县| 德格县| 抚松县| 井冈山市| 思茅市| 宿迁市| 临安市| 泉州市| 牟定县| 越西县| 麟游县| 遵义市| 综艺| 孟连| 蓝田县| 诸暨市| 方山县| 英超| 平南县| 睢宁县|