亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜索
JSP 基礎(chǔ)教程 JSP 開發(fā)環(huán)境搭建 JSP 結(jié)構(gòu) JSP 生命周期 JSP 語法 JSP 指令 JSP 動作元素 JSP 隱式對象 JSP 客戶端請求 JSP 服務(wù)器響應(yīng) JSP HTTP 狀態(tài)碼 JSP 表單處理 JSP 過濾器 JSP Cookies 處理 JSP Session JSP 文件上傳 JSP 日期處理 JSP 頁面重定向 JSP 點(diǎn)擊量統(tǒng)計 JSP 自動刷新 JSP 發(fā)送郵件 JSP 高級教程 JSP 標(biāo)準(zhǔn)標(biāo)簽庫(JSTL) <c:out> 標(biāo)簽 <c:set> 標(biāo)簽 <c:remove> 標(biāo)簽 <c:catch> 標(biāo)簽 <c:if> 標(biāo)簽 <c:choose> <c:import> 標(biāo)簽 <c:forEach> <c:param> 標(biāo)簽 <c:redirect> 標(biāo)簽 <fmt:formatNumber>標(biāo)簽 <fmt:parseNumber> 標(biāo)簽 <fmt:formatDate> 標(biāo)簽 <fmt:parseDate> 標(biāo)簽 <fmt:bundle> 標(biāo)簽 <fmt:setLocale> 標(biāo)簽 <fmt:setBundle> 標(biāo)簽 <fmt:timeZone> 標(biāo)簽 <fmt:setTimeZone> 標(biāo)簽 <fmt:message> 標(biāo)簽 <fmt:requestEncoding> 標(biāo)簽 <sql:setDataSource> 標(biāo)簽 <sql:query> 標(biāo)簽 <sql:update> 標(biāo)簽 <sql:param> 標(biāo)簽 <sql:dateParam> 標(biāo)簽 <sql:transaction> 標(biāo)簽 <x:out> 標(biāo)簽 <x:parse> 標(biāo)簽 <x:set> 標(biāo)簽 <x:if> 標(biāo)簽 <x:forEach> 標(biāo)簽 <x:choose> <x:transform> 標(biāo)簽 <x:param> 標(biāo)簽 fn:contains()函數(shù) fn:containsIgnoreCase()函數(shù) fn:endsWith()函數(shù) fn:escapeXml()函數(shù) fn:indexOf()函數(shù) fn:join()函數(shù) fn:length()函數(shù) fn:replace()函數(shù) fn:split()函數(shù) fn:startsWith()函數(shù) fn:substring()函數(shù) fn:substringAfter()函數(shù) fn:substringBefore()函數(shù) fn:toLowerCase()函數(shù) fn:toUpperCase()函數(shù) fn:trim()函數(shù) JSP 連接數(shù)據(jù)庫 JSP XML 數(shù)據(jù)處理 JSP JavaBean JSP 自定義標(biāo)簽 JSP 表達(dá)式語言 JSP 異常處理 JSP 調(diào)試 JSP 國際化
文字

JSP 文件上傳


JSP可以通過HTML的form表單上傳文件到服務(wù)器。 文件類型可以是文本文件、二進(jìn)制文件、圖像文件等其他任何文檔。


創(chuàng)建文件上傳表單

接下來我們使用HTML標(biāo)簽來創(chuàng)建文件上傳表單,以下為要注意的點(diǎn):

  • form表單 method 屬性必須設(shè)置為 POST 方法 ,不能使用 GET 方法。
  • form表單 enctype 屬性需要設(shè)置為 multipart/form-data。
  • form表單 action 屬性需要設(shè)置為提交到后臺處理文件上傳的jsp文件地址。例如 uploadFile.jsp 程序文件用來處理上傳的文件。
  • 上傳文件元素需要使用 <input .../> 標(biāo)簽,屬性設(shè)置為 type="file"。如果需要上傳多個文件,可以在 <input .../>標(biāo)簽中設(shè)置不同的名稱。

以下是一個上傳文件的表單,實(shí)例如下:

<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<h3>File Upload:</h3>
Select a file to upload: <br />
<form action="UploadServlet" method="post"
                        enctype="multipart/form-data">
<input type="file" name="file" size="50" />
<br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>

在你本地瀏覽器訪問該文件,顯示界面如下所示,在你點(diǎn)擊"Upload File"會彈出一個窗口讓你選擇要上傳的文件:

jsp-file-upload-1


后臺JSP處理腳本

首先我們先定義文件上傳后存儲在服務(wù)上的位置,你可以將路徑寫在你的程序當(dāng)中,或者我們可以在web.xml配置文件中通過設(shè)置 context-param 元素來設(shè)置文件存儲的目錄,如下所示:

<web-app>
....
<context-param> 
    <description>Location to store uploaded file</description> 
    <param-name>file-upload</param-name> 
    <param-value>
         c:\apache-tomcat-5.5.29\webapps\data\
     </param-value> 
</context-param>
....
</web-app>

以下腳本文件UploadFile.jsp可以處理多個上傳的文件,在使用該腳本前,我們需要注意以下幾點(diǎn):

  • 以下實(shí)例依賴 FileUpload, 所以你需要在你的classpath中引入最新的 commons-fileupload.x.x.jar 包文件。 下載地址為:http://commons.apache.org/fileupload/。
  • FileUpload 依賴 Commons IO, 所以你需要在你的classpath中引入最新的 commons-io-x.x.jar 。 下載地址為: http://commons.apache.org/io/。
  • 在測試以下實(shí)例時,你需要上傳確認(rèn)上傳的文件大小小于 maxFileSize 變量設(shè)置的大小 ,否則文件無法上傳成功。
  • 確保你已經(jīng)創(chuàng)建了目錄 c:\temp 和 c:\apache-tomcat-5.5.29\webapps\data 。
<%@ page import="java.io.*,java.util.*, javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
<%@ page import="org.apache.commons.io.output.*" %>

<%
   File file ;
   int maxFileSize = 5000 * 1024;
   int maxMemSize = 5000 * 1024;
   ServletContext context = pageContext.getServletContext();
   String filePath = context.getInitParameter("file-upload");

   // 驗證上傳內(nèi)容了類型
   String contentType = request.getContentType();
   if ((contentType.indexOf("multipart/form-data") >= 0)) {

      DiskFileItemFactory factory = new DiskFileItemFactory();
      // 設(shè)置內(nèi)存中存儲文件的最大值
      factory.setSizeThreshold(maxMemSize);
      // 本地存儲的數(shù)據(jù)大于 maxMemSize.
      factory.setRepository(new File("c:\\temp"));

      // 創(chuàng)建一個新的文件上傳處理程序
      ServletFileUpload upload = new ServletFileUpload(factory);
      // 設(shè)置最大上傳的文件大小
      upload.setSizeMax( maxFileSize );
      try{ 
         // 解析獲取的文件
         List fileItems = upload.parseRequest(request);

         // 處理上傳的文件
         Iterator i = fileItems.iterator();

         out.println("<html>");
         out.println("<head>");
         out.println("<title>JSP File upload</title>");  
         out.println("</head>");
         out.println("<body>");
         while ( i.hasNext () ) 
         {
            FileItem fi = (FileItem)i.next();
            if ( !fi.isFormField () )	
            {
            // 獲取上傳文件的參數(shù)
            String fieldName = fi.getFieldName();
            String fileName = fi.getName();
            boolean isInMemory = fi.isInMemory();
            long sizeInBytes = fi.getSize();
            // 寫入文件
            if( fileName.lastIndexOf("\\") >= 0 ){
            file = new File( filePath , 
            fileName.substring( fileName.lastIndexOf("\\"))) ;
            }else{
            file = new File( filePath ,
            fileName.substring(fileName.lastIndexOf("\\")+1)) ;
            }
            fi.write( file ) ;
            out.println("Uploaded Filename: " + filePath + 
            fileName + "<br>");
            }
         }
         out.println("</body>");
         out.println("</html>");
      }catch(Exception ex) {
         System.out.println(ex);
      }
   }else{
      out.println("<html>");
      out.println("<head>");
      out.println("<title>Servlet upload</title>");  
      out.println("</head>");
      out.println("<body>");
      out.println("<p>No file uploaded</p>"); 
      out.println("</body>");
      out.println("</html>");
   }
%>

接下來讓我們通過瀏覽器訪問 http://localhost:8080/UploadFile.htm,界面如下所示,并上傳文件:

jsp-file-upload-2

如果你的JSP腳本運(yùn)行正常,文件將被上傳至 c:\apache-tomcat-5.5.29\webapps\data\ ,你可以打開文件夾看看是否上傳成功。

關(guān)于我們 聯(lián)系我們 留言板

手冊網(wǎng)

上一篇: 下一篇: