<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 小菜毛毛 閱讀(2503) 評論(2)  編輯  收藏 所屬分類: J2EE相關技術與框架

    Feedback

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

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

    主站蜘蛛池模板: 亚洲精品偷拍视频免费观看| 亚洲精品岛国片在线观看| 亚洲av无码成人影院一区| 久久精品国产精品亚洲精品 | 国产亚洲精品免费| 日韩a级无码免费视频| 无码一区二区三区亚洲人妻| 亚洲国产av美女网站| 亚洲人成网站在线播放vr| 国产美女精品久久久久久久免费 | 免费99热在线观看| 成年女人色毛片免费看| 在线看片韩国免费人成视频| 东方aⅴ免费观看久久av| 亚洲色欲色欱wwW在线| 亚洲a级在线观看| 亚洲熟女精品中文字幕| 亚洲三级在线视频| 亚洲国产成人资源在线软件 | 97视频免费在线| 国产成人免费网站在线观看| 亚洲精品一级无码中文字幕| 中文字幕久久亚洲一区| 亚洲av鲁丝一区二区三区| 亚洲精品无码专区2| 亚洲av日韩av天堂影片精品| 亚洲色偷偷偷鲁综合| 亚洲理论电影在线观看| 亚洲av无码成人黄网站在线观看| 亚洲综合图色40p| 亚洲乱码在线播放| 手机永久免费的AV在线电影网| 国产一级婬片A视频免费观看| 一级毛片免费观看不卡的| 久久久久久久91精品免费观看| 无码少妇一区二区浪潮免费| 成人人观看的免费毛片| 亚洲AV无码精品色午夜在线观看| 蜜芽亚洲av无码精品色午夜| 男女猛烈xx00免费视频试看| 免费人成毛片动漫在线播放|