乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      利用 Oreilly MultiPartRequest 解決 上傳檔案 的問(wèn)題

       Joshua 2006-01-07

      利用 Oreilly MultiPartRequest 解決 上傳檔案 的問(wèn)題

      一般的輸入型態(tài) (例如:text、password、radio、checkbox、select …等等 ),它傳送表單到伺服器端時(shí),所使用的編碼方式是application/x-www-form-urlencoded,但是當(dāng)要傳送檔案至伺服器端時(shí),必須使用到multipart/form-data的編碼方式。正因?yàn)殡p方在傳送資料時(shí)所使用到的編碼方式不一樣,因此在接收使用者傳來(lái)的資料時(shí),不能直接使用request.getParameter( )來(lái)取得。假若讀者有興趣想更了解檔案上傳的規(guī)格時(shí),可以至下列這個(gè)網(wǎng)址, http://ds./rfc/rfc1867.txt,將可以查詢到更加詳細(xì)的規(guī)格說(shuō)明。

      在來(lái)介紹一套目前最常使用,也是筆者目前在使用的元件。那就是由歐萊禮 (O‘Reilly)公司所提供的MultipartRequest類別工具,它除了可供免費(fèi)下載之外,還會(huì)不定期新增功能,並且它還有公開(kāi)原始碼供使用者參考,若有興趣的讀者可至:http://www./resources/com.oreilly.servlet/ 免費(fèi)下載。


      這個(gè)範(fàn)例會(huì)有二個(gè)檔案,名稱皆為File,不過(guò)一個(gè)是HTML檔,另一個(gè)是JSP檔。

      File.htm

      <html>
      <head>
      <title>File Upload</title>
      <meta http-equiv="Content-Type" content="text/html; charset=big5">
      </head>
      <body bgcolor="#FFFFFF" text="#000000"><p><font size="5"color="#FF0000">
      <b>第七章 檔案上傳範(fàn)例</b></font></p>
      
      <form name="Form1" enctype="multipart/form-data" method="post" action="File.jsp"> 
      <p>上傳檔案 1: <input type="file"name="File1" size="20" maxlength="20"> </p>
      <p>檔案1敘述: <input type="text" name="File1" size="30" maxlength="50"> </p>
      <p>上傳檔案 2: <input type="file" name="File2" size="20" maxlength="20"> </p>
      <p>檔案2敘述: <input type="text" name="File2" size="30" maxlength="50"> </p>
      <p>上傳檔案3: <input type="file" name="File3" size="20" maxlength="20"> </p>
      <p>檔案3敘述: <input type="text" name="File3" size="30" maxlength="50"> </p>
      <p> <input type="submit"value="上傳"> <input type="reset" value="清除"> </p>
      </form>
      
      </body>
      </html> 

      執(zhí)行結(jié)果如圖 (一)所示,讀者可看出,在File.htm當(dāng)中,我們?cè)试S使用者一次上傳三個(gè)檔案,並且可以針對(duì)每個(gè)上傳檔案做一小段的敘述。

      圖 一 File.htm的執(zhí)行結(jié)果

       

      File.jsp

      <%@ page language="java" %>
      <%@ page import="java.io.*" %>
      <%@ page import="java.util.*" %>
      <%@ page import="com.oreilly.servlet.MultipartRequest" %>
      
      <%! 
      	// 宣告將上傳之檔案放置到伺服器的C:\Upload目錄中 
          // 宣告限制上傳之檔案大小為 5 MB 
          String saveDirectory = "C:\\Upload\\"; 
          int maxPostSize = 5 * 1024 * 1024 ; 
      
          // 宣告敘述上傳檔案內(nèi)容的變數(shù),型態(tài)為String	
          String FileDescription[] = {null,null,null}; 
      
          // 宣告上傳檔案名稱 String FileName = null;	
          // 計(jì)算上傳檔案之個(gè)數(shù) int count = 0 ;
      %>
      
      <html>
      <head>
      <title>File Upload</title>
      </head>
      
      <%	
          // 產(chǎn)一個(gè)新的MultipartRequest 的物件,multi 
          MultipartRequest multi = new MultipartRequest(request , saveDirectory , maxPostSize ); 
      %>
      <body>
      <% 
      	// 判斷是否有取得檔案敘述, 
      	// 若有,將資料給FileDescription	
        	// 若無(wú),將FileDescription的內(nèi)容設(shè)為空白字串 
      	
      	if ( multi.getParameter("File1") != null ) 
      	{ 
      		FileDescription[0] = multi.getParameter("File1"); 
      	}
      	else	
        	{ 
      		FileDescription[0] = ""; 
      	} 
      	
      	if ( multi.getParameter("File2") != null ) 
      	{ 
      		FileDescription[1] = multi.getParameter("File2"); 
      	} 
      	else	
        	{ 
      		FileDescription[1] = ""; 
      	} 
      
      	if ( multi.getParameter("File3") != null ) 
      	{ 
      		FileDescription[2] = multi.getParameter("File3"); 
      	} 
      	else	
        	{ 
      		FileDescription[2] = ""; 
      	} 
      	
      	// 取得所有上傳之檔案輸入型態(tài)名稱 
      	Enumeration filesname = multi.getFileNames(); 
      	while (filesname.hasMoreElements()) 
      	{ 
      		String name = (String) filesname.nextElement(); 
      		FileName = multi.getFilesystemName(name);	
        		File f = multi.getFile(name); 
      		String ContentType = multi.getContentType(name);	
        
      		if (FileName != null) 
      		{ 
      			count ++;
      
      %>
      <font color="red">你上傳的第<%= count %>個(gè)的檔案:</font><br>
      檔案名稱為:<%= FileName %><br>
      檔案型態(tài)為:<%=   ContentType %><br>
      檔案的敘述:<%= FileDescription[count-1] %><br><br>
      
      <%	
      		 } // end if 
      	} // end while
      %> 
      您總共上傳<font color="red"><%= count %></font>個(gè)檔案
      </body>
      </html>
      

      一開(kāi)始我們先取得所有檔案輸入型態(tài)的名稱,即<input type="file" name="xxxx" >中的xxxx,因此根據(jù)File.htm的內(nèi)容,filesname的內(nèi)容分別由File1、File2和File3組成。再來(lái)使用filesname.nextElement(),將它們一一取出來(lái),存入到name的變數(shù)當(dāng)中,而name的內(nèi)容就是File1或File2或File3,最後再利用name,取得真正上傳檔案之檔案、檔案名稱、檔案型態(tài)。圖(二)是File.jsp的執(zhí)行結(jié)果。

      圖二 File.jsp的執(zhí)行結(jié)果

       

       

       

       

       

       

       

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多