動態網頁技術--JSP(6)

一.圖片上傳:javascript

                 FileUpload是用來實現Java環境下的文件上傳功能,與常見的SmartUpload齊名css

客戶端:  html

      1.form的enctype屬性設置爲 multipart/form-data,設置該值後,瀏覽器在上傳文件時,將把文件數據附帶在Http請求體中,並使用MIME協議對上傳文件進行描述,以方便接收方對上傳數據進行解析和處理。java

      2.form的method屬性設置爲 POST
      3.添加文件上傳項<input type=「file」 ... />數組

上傳步驟:( smartupload)瀏覽器

   1.引入jar文件服務器

 jspsmartupload.jarapp

      2.實例化上載類dom

 SmartUpload mySmartUpload = new SmartUpload();jsp

      3.初始化  (pageContext)

  mySmartUpload.initialize(pageContext);

      4.準備上傳  (沒有直接上傳呢)

    mySmartUpload.upload();

      5.保存上傳文件  (提交)   

  mySmartUpload.save("/upup");

 

 

•需求將一張圖片上傳到服務器的upup文件夾下

 文件路徑

建立表單上傳頁面

 1 indexTest.jsp表單上傳頁面
 2 
 3 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 4 <%
 5 String path = request.getContextPath();
 6 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 7 %>
 8 
 9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
10 <html>
11   <head>
12     <base href="<%=basePath%>">
13     
14     <title>test上傳</title>
15     <meta http-equiv="pragma" content="no-cache">
16     <meta http-equiv="cache-control" content="no-cache">
17     <meta http-equiv="expires" content="0">    
18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
19     <meta http-equiv="description" content="This is my page">
20     <!--
21     <link rel="stylesheet" type="text/css" href="styles.css">
22     -->
23   </head>
24   
25   <body>
26                         <!--  上傳的表單要這樣被封裝    -->
27   <form action="up.jsp" method="post" enctype="multipart/form-data"/>
28     請輸入:<input type="text" name="name"/><br/>
29     <input type="file" name="file"/>
30     <input type="submit" value="上傳">
31   
32   </form>
33   </body>
34 </html>
 1 上傳流程
 2 
 3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 4 <%@ page import="com.jspsmart.upload.*"%>
 5 
 6 
 7 <%
 8     String path = request.getContextPath();
 9     String basePath = request.getScheme() + "://"
10             + request.getServerName() + ":" + request.getServerPort()
11             + path + "/";
12 %>
13 
14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
15 <html>
16     <head>
17         <base href="<%=basePath%>">
18 
19         <title>My JSP 'up.jsp' starting page</title>
20 
21         <meta http-equiv="pragma" content="no-cache">
22         <meta http-equiv="cache-control" content="no-cache">
23         <meta http-equiv="expires" content="0">
24         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
25         <meta http-equiv="description" content="This is my page">
26         <!--
27     <link rel="stylesheet" type="text/css" href="styles.css">
28     -->
29 
30     </head>
31 
32     <body>
33         <%
34             //步驟一:實例化上載bean
35             SmartUpload mySmartUpload = new SmartUpload();
36 
37             //步驟二:初始化
38             mySmartUpload.initialize(pageContext);
39                 
40             //步驟三:準備上載文件
41                 mySmartUpload.upload();
42                 
43             //步驟四:保存文件
44             //    mySmartUpload.save("/upup");
45             
46 ////////////////////////////////////////////////////////////////////    
47             //表單被封裝後直接經過request不能得到值    
48             //    String name=request.getParameter("name");
49         String name=mySmartUpload.getRequest().getParameter("name");
50 
51           //取得文件擴展名,後綴
52           String ext=mySmartUpload.getFiles().getFile(0).getFileExt();
53            
54          //利用自定義名字上傳,保存文件名  getFiles()獲得全部file類型數組,可用做批量上傳  savaAs()方法用來更更名字
55         // mySmartUpload.getFiles().getFile(0).saveAs("/upup/"+name+"."+ext);
56 
57            //利用隨機數名字上傳,保存文件名
58            String uuid = UUID.randomUUID().toString();
59           mySmartUpload.getFiles().getFile(0).saveAs("/upup/"+uuid+"."+ext);
60         %>
61 
62         <h1>上傳成功</h1>
63         
64     </body>
65 </html>
  1 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
  2 <%@ page import="java.util.*" %>
  3 <%@ page import="java.text.SimpleDateFormat" %>
  4 <%@ page import="com.jspsmart.upload.*" %>
  5 
  6 
  7 <% 
  8 response.setHeader("Expires","0");
  9 response.setHeader("Pragma","nono-catch");
 10 response.setHeader("Catch-Control","no-cache");
 11 %> 
 12 
 13 <% 
 14     String _contexPath = request.getContextPath();
 15     String ext = "";
 16   
 17 %> 
 18 
 19 <html>
 20 <head>
 21 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 22 <script language="JavaScript" src="<%=_contexPath%>/css/common.js"></script>
 23 <title>……</title>
 24 </head>
 25 <body> 
 26 <%
 27         
 28         String trace = "";
 29         String filename = "";
 30         try
 31         {
 32                  //實例化上載bean
 33                 SmartUpload mySmartUpload = new SmartUpload();
 34                 
 35                 //初始化
 36                 mySmartUpload.initialize(pageContext);
 37                 
 38                 // 設定上傳限制
 39                 // 1.限制每一個上傳文件的最大值
 40                 mySmartUpload.setMaxFileSize(500 * 1024 * 1024 * 1024);
 41                 // 2.限制總上傳數據的長度。
 42                 //mySmartUpload.setTotalMaxFileSize(200000000);
 43                 // 3.設定容許上傳的文件(經過擴展名限制),僅容許doc,txt文件。
 44                 //mySmartUpload.setAllowedFilesList("doc,txt");
 45                 // 4.設定禁止上傳的文件(經過擴展名限制),禁止上傳帶有exe,bat,jsp,htm,html擴展名的文件和沒有擴展名的文件。
 46                 //mySmartUpload.setDeniedFilesList("exe,bat,jsp,htm,html,,");
 47                 
 48                 //上載文件
 49                 mySmartUpload.upload();
 50                 // 將上傳文件所有保存到指定目錄
 51                 //int count = mySmartUpload.save("/upload");
 52                 //System.out.println(mySmartUpload.getFiles().getCount() + "個文件上傳成功!<br>");
 53                 
 54                 //得到Request對象
 55                 //re1 = (HttpServletRequest)pageContext.getRequest();
 56                 //re1 = (HttpServletRequest)mySmartUpload.getRequest();
 57                 //String other = mySmartUpload.getRequest().getParameter("other");
 58                 
 59                        
 60                 //循環取得全部上載的文件
 61                 
 62                 for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++)
 63                 {
 64                       //取得上載的文件
 65                       com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
 66                       
 67                       if (!myFile.isMissing())
 68                     {
 69                        ext = myFile.getFileExt();
 70                        //全名(絕對路徑+名稱)
 71                        String myFilePath = myFile.getFilePathName();
 72                        //取得文件的大小
 73                        int fileSize = myFile.getSize();
 74                        filename = new String(myFile.getFileName().getBytes(),"utf-8");
 75                       // System.out.print(filename);
 76                        //另存路徑
 77                        //String jspPath = application.getRealPath(request.getRequestURI());//本JSP文件的服務器絕對路徑
 78                        String filePath = getServletContext().getRealPath("/imgupload/");//本WEB程序根目錄服務器絕對路徑 
 79                        
 80                        //filePath += "\\UserFiles\\Image\\";
 81                     
 82                        
 83                        //要建立的文件最終保存目錄
 84                        java.io.File file = new java.io.File( filePath ); 
 85                        
 86                       // System.out.println("filepath==="+filePath);
 87                          
 88                          if(file.exists())
 89                                      file.mkdirs();
 90                                      
 91   
 92                      //  trace += ((new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()))+"."+ext);//最終保存路徑
 93                        
 94                        
 95                       // request.setAttribute("Image",trace);
 96                       // System.out.println("trace==="+filename);
 97                        
 98                        myFile.saveAs(filePath + "\\" + filename);
 99 
100                        // 將文件另存
101                        //myFile.saveAs("\\upload\\" + myFile.getFileName());
102                        // 另存到以WEB應用程序的根目錄爲文件根目錄的目錄下
103                        //myFile.saveAs("\\upload\\" + myFile.getFileName(), SmartUpload.SAVE_VIRTUAL);
104                        //將文件另存到指定目錄(操做系統的目錄)
105                        //myFile.saveAs(trace, SmartUpload.SAVE_PHYSICAL);
106                       } 
107                       else
108                       {
109                           // 若文件不存在則繼續
110                         continue;
111                         
112                       }
113                 }//end for
114           }catch(Exception SE){
115             System.out.println("com.jspsmart.upload.SmartUpload上傳期間產生錯誤!");
116           }
117 %>
118 <script language='javascript'>
119 alert('上傳成功');
120 </script>
121 <img src="imgupload/<%=filename %>">
122 </body>
123 </html>

運行結果

相關文章
相關標籤/搜索