<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小菜毛毛技術分享

    與大家共同成長

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

    上傳文件選取頁面:upload.html

    <html>
    <head>
    <title>文件上傳</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <b>文件上傳</b></font></p>

    <form name="UploadForm" enctype="multipart/form-data" method="post" action="upload.jsp">
    <input type="file" name="File1" size="20" maxlength="20"> <br>
    <input type="submit"value="上傳">
    </form>

    </body>
    </html>

    上傳處理:upload.jsp

    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.io.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="javax.servlet.*"%>
    <%@ page import="javax.servlet.http.*"%>
    <html>
    <head>
    <title> upFile </title>
    </head>
    <body bgcolor="#ffffff">
    <center>
    <%
    //定義上載文件的最大字節
    int MAX_SIZE = 102400 * 102400;
    // 創建根路徑的保存變量
    String rootPath;

    //聲明文件讀入類
    DataInputStream in = null;
    FileOutputStream fileOut = null;
    //取得客戶端的網絡地址
    String remoteAddr = request.getRemoteAddr();
    out.print("request.getRemoteAddr()"+remoteAddr+"<br>");
    //獲得服務器的名字
    String serverName = request.getServerName();
    out.print("request.getServerName()="+serverName+"<br>");
    //取得jsp文件相對與根地址的地址
    out.print("request.getServletPath()="+request.getServletPath()+"<br>");
    //取得互聯網程序的絕對地址
    String realPath = request.getRealPath(serverName);
    out.println("request.getRealPath(serverName)="+realPath+"<br>");
    out.println("OK<br>");
    realPath = realPath.substring(0,realPath.lastIndexOf("\\"));
    //創建文件的保存目錄
    rootPath = realPath + "\\upload\\";
    //out.println(rootPath);
    //取得客戶端上傳的數據類型
    String contentType = request.getContentType();
    //out.println("<p>客戶端上傳的數據類型 = " + contentType + "</p>");
    try{
    if(contentType.indexOf("multipart/form-data") >= 0){
    //讀入上傳的數據
    in = new DataInputStream(request.getInputStream());
    int formDataLength = request.getContentLength();
    if(formDataLength > MAX_SIZE){
    out.println("<P>上傳的文件字節數不可以超過" + MAX_SIZE + "</p>");
    return;
    }
    //保存上傳文件的數據
    byte dataBytes[] = new byte[formDataLength];
    int byteRead = 0;
    int totalBytesRead = 0;
    //上傳的數據保存在byte數組
    while(totalBytesRead < formDataLength){
    byteRead = in.read(dataBytes,totalBytesRead,formDataLength);
    totalBytesRead += byteRead;
    }
    //根據byte數組創建字符串
    String file = new String(dataBytes);
    //out.println(file);
    //取得上傳的數據的文件名
    String saveFile = file.substring(file.indexOf("filename=\"") + 10);
    saveFile = saveFile.substring(0,saveFile.indexOf("\n"));
    saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
    int lastIndex = contentType.lastIndexOf("=");
    //取得數據的分隔字符串
    String boundary = contentType.substring(lastIndex + 1,contentType.length());
    //創建保存路徑的文件名
    String fileName = rootPath + saveFile;
    //out.print(fileName);
    int pos;
    pos = file.indexOf("filename=\"");
    pos = file.indexOf("\n",pos) + 1;
    pos = file.indexOf("\n",pos) + 1;
    pos = file.indexOf("\n",pos) + 1;
    int boundaryLocation = file.indexOf(boundary,pos) - 4;
    //out.println(boundaryLocation);
    //取得文件數據的開始的位置
    int startPos = ((file.substring(0,pos)).getBytes()).length;
    //out.println(startPos);
    //取得文件數據的結束的位置
    int endPos = ((file.substring(0,boundaryLocation)).getBytes()).length;
    //out.println(endPos);
    //檢查上載文件是否存在
    File checkFile = new File(fileName);
    if(checkFile.exists()){
    out.println("<p>" + saveFile + "文件已經存在.</p>");
    return;
    }
    //檢查上載文件的目錄是否存在
    File fileDir = new File(rootPath);
    if(!fileDir.exists()){
    fileDir.mkdirs();
    }
    //創建文件的寫出類
    fileOut = new FileOutputStream(fileName);
    //保存文件的數據
    fileOut.write(dataBytes,startPos,(endPos - startPos));
    fileOut.close();
    out.println("<P>" + saveFile + "文件成功上載.</p>");
    }else{
    String content = request.getContentType();
    out.println("<p>上傳的數據類型不是是multipart/form-data</p>");
    }
    }catch(Exception ex){
    throw new ServletException(ex.getMessage());
    }
    %>
    </center>
    </body>
    </html>

    posted on 2010-01-19 21:27 小菜毛毛 閱讀(2496) 評論(2)  編輯  收藏 所屬分類: J2EE相關技術與框架

    Feedback

    # re: 純jsp的單個文件上載代碼 2014-02-27 10:51 葫蘆娃
    很不錯。謝  回復  更多評論
      

    # re: 純jsp的單個文件上載代碼 2014-02-27 10:52 葫蘆娃
    <hr>
    <br/>
    <s>  回復  更多評論
      

    主站蜘蛛池模板: 亚洲av午夜福利精品一区| 亚洲精品亚洲人成在线观看下载 | 亚洲一区中文字幕| 91av视频免费在线观看| 91大神亚洲影视在线| 免费人成毛片动漫在线播放| 亚洲女久久久噜噜噜熟女| 成全视频在线观看免费| 久久久亚洲欧洲日产国码二区| 久久精品一本到99热免费| 337p日本欧洲亚洲大胆艺术| 亚洲视频在线免费看| 亚洲欧美国产国产综合一区| 国产成人免费永久播放视频平台| 国产亚洲Av综合人人澡精品| 四虎精品亚洲一区二区三区| 九九热久久免费视频| 香蕉视频在线观看亚洲| 中字幕视频在线永久在线观看免费 | 亚洲不卡1卡2卡三卡2021麻豆| 日韩视频在线精品视频免费观看| 亚洲国产成+人+综合| 成年大片免费视频| 四虎影视永久在线精品免费| 亚洲国产精品福利片在线观看| 日本免费一区二区在线观看| 久久久久久亚洲av无码蜜芽| 亚洲人JIZZ日本人| 成人免费一级毛片在线播放视频| 日韩国产欧美亚洲v片| 亚洲春色在线视频| 女人18毛片a级毛片免费| 一级做a毛片免费视频| 亚洲精品资源在线| 亚洲国产精品碰碰| 曰曰鲁夜夜免费播放视频| 欧洲乱码伦视频免费国产| 婷婷精品国产亚洲AV麻豆不片| 成人性生交大片免费看午夜a| 成年免费a级毛片免费看无码| 亚洲国产区男人本色在线观看|