国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP實現(xiàn)快速上傳文件的方法

2020-07-27 21:30:33
字體:
供稿:網(wǎng)友

本文實例講述了JSP實現(xiàn)快速上傳文件的方法。分享給大家供大家參考。具體如下:

這里演示JSP不使用第三方庫,實現(xiàn)快速上傳文件的功能

1. FileUpload.java:

package FileUpload;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import javax.servlet.ServletInputStream;/** *  *//** * @author Qch *  */public class FileUpload{  ServletInputStream in=null;  String fpath="C://";  public FileUpload()  {    fpath="C://";    in=null;  }  public void setInputStream(ServletInputStream in)  {    this.in=in;  }  public void setFpath(String p)  {    this.fpath=p;  }  public String getFpath()  {    return fpath;  }  public String getParameter()  {     String r=null;    try    {      r=getParameter(in);    }    catch (Exception e)    {      e.printStackTrace();    }    return r;  }  public long getFileUpload()  {    long r=-1;    try    {      r=getFileUpload(in,fpath);    }    catch (Exception e)    {      e.printStackTrace();    }    return r;  }  public String getParameter(ServletInputStream in)// 只能按順序提取      throws Exception  {    int l = 0;    byte[] b = new byte[1024];    l = in.readLine(b, 0, b.length);// 依次是讀取屬性的開始符、名稱、屬性值的類型、屬性的值    String si = new String(b);    if (si.startsWith("----------------------------"))    {// 表示是從開始符開始讀,否則應(yīng)為剛讀取文件后的一個屬性,此時應(yīng)少讀一次      l = in.readLine(b, 0, b.length);    }    l = in.readLine(b, 0, b.length);    l = in.readLine(b, 0, b.length);    String value = new String(b, 0, l);    return value;  }  public long getFileUpload(ServletInputStream in, String fpath)// 需要提供輸入流和存儲路徑      throws Exception  {    // out.println("文件信息:<br>");    long begin = System.currentTimeMillis();// 傳送時間計時開始    int l = 0;    byte[] b = new byte[1024];    l = in.readLine(b, 0, b.length);    String sign = new String(b, 0, l);// eg.-----------------------------7d9dd29630a34    l = in.readLine(b, 0, b.length);    String info = new String(b, 0, l);// eg.Content-Disposition:form-data;    // name="file";    l = in.readLine(b, 0, b.length);    // String type=new    // String(b,0,l);//eg.Content-Type:application/octet-stream(程序文件)    l = in.readLine(b, 0, b.length);    // String nulll=new String(b,0,l);//此值應(yīng)為空    int nIndex = info.toLowerCase().indexOf("filename=/"");    int nLastIndex = info.toLowerCase().indexOf("/"", nIndex + 10);    String filepath = info.substring(nIndex + 10, nLastIndex);    int na = filepath.lastIndexOf("http://");    String filename = filepath.substring(na + 1);    // out.println("文件絕對路徑:"+filepath+"<br>");    // out.println("文件名:"+filename+"<br><br>");    String path=fpath + filename;    File fi = new File(path);// 建立目標文件    if (!fi.exists()&&!fi.createNewFile())      return -2;    BufferedOutputStream f = new BufferedOutputStream(new FileOutputStream(        fi));    while ((l = in.readLine(b, 0, b.length)) > 0)    {      if (l == sign.length())      {        String sign1 = new String(b, 0, sign.length());        // out.println(sign1+"<br>");        if (sign1.startsWith(sign))// 比對是否文件已傳完          break;      }      f.write(b, 0, l);      f.flush();    }    f.flush();    f.close();    long end = System.currentTimeMillis();// 傳送時間計時結(jié)束    // out.println("上傳文件用時:"+(end-begin)+"毫秒<br>");    return end - begin;  }}

2. submitFile.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%  String path = request.getContextPath();  String basePath = request.getScheme() + "://"      + request.getServerName() + ":" + request.getServerPort()      + path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">    <title>My JSP 'submitFile.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--  <link rel="stylesheet" type="text/css" href="styles.css">  -->    <script language="javascript">      function check()      {        if (document.form2.name.value==""){          alert("姓名不能為空!!");          document.form2.name.focus();          return false;        }        if (document.form2.file.value==""){          alert("文件不能為空!!");          return false;        }        return true;      }    </script>  </head>  <body>    <br>    <form method="post" name="form2" enctype="MULTIPART/FORM-DATA"      action="AnswerFile.jsp">      <br>      <p align="center">        &nbsp;        <br>      </p>      <table width="530" border="1" bgcolor="#c0c0c0" align="center"        height="91">        <tbody>          <tr>            <td valign="top" align="right">              姓名              <br>            </td>            <td valign="top">              <input type="text" name="name">            </td>          </tr>          <tr>            <td align="right">              &nbsp; 文件            </td>            <td align="left">              &nbsp;              <input type="file" name="file">            </td>          </tr>          <tr>            <td valign="top" align="right">              文件類型              <br>            </td>            <td valign="top" align="left">              <select size="1" name="leixing">                <option selected value="作業(yè)">                  作業(yè)                </option>                <option value="課程設(shè)計">                  課程設(shè)計                </option>                <option value="論文">                  論文                </option>              </select>            </td>          </tr>          <tr>            <td align="right">              <input type="Submit" value="上傳" name="button2" onclick="return(check());">            </td>            <td align="left">              &nbsp;              <input type="reset" value="重置" name="button3">            </td>          </tr>        </tbody>      </table>      <p>        &nbsp;        <br>        <br>        &nbsp;      </p>    </form>  </body></html>

3. AnswerFile.jsp:



<%@ page language="java" import="java.util.*,java.io.*"  pageEncoding="GB18030"%><%  String path = request.getContextPath();  String basePath = request.getScheme() + "://"      + request.getServerName() + ":" + request.getServerPort()      + path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">    <title>My JSP 'AnswerFile.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--  <link rel="stylesheet" type="text/css" href="styles.css">  -->  </head>  <body>    <jsp:useBean id="upload" scope="session" class="FileUpload.FileUpload"/>    <jsp:setProperty name="upload" value="C://" property="fpath"/>    <%      ServletInputStream in = request.getInputStream();      upload.setInputStream(in);      String nam = upload.getParameter();      out.println("姓名:" + nam + "<br><br>");      long time = upload.getFileUpload();      out.println("文件上傳完畢,總共耗時:" + time + "毫秒<br>");      String leixing = upload.getParameter();      out.println("文件類型:" + leixing + "<br>");      in.close();    %>    <br>    <div align="right">      <a href="index.jsp">回到首頁</a>    </div>  </body></html>

希望本文所述對大家的JSP程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汉沽区| 介休市| 获嘉县| 普洱| 松溪县| 会同县| 贵溪市| 呼伦贝尔市| 甘谷县| 丰镇市| 安化县| 沁阳市| 万安县| 于都县| 平度市| 云梦县| 株洲市| 萍乡市| 勃利县| 绥芬河市| 乳源| 衡东县| 当雄县| 海门市| 宁远县| 云阳县| 凤阳县| 凤山县| 河北省| 玉龙| 定西市| 观塘区| 阿瓦提县| 沅江市| 上林县| 宁安市| 娄烦县| 健康| 永福县| 乐都县| 赞皇县|