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

首頁 > 編程 > JSP > 正文

實現JSP快速上傳文件的方法

2024-09-05 00:18:42
字體:
來源:轉載
供稿:網友

JSP如何實現快速上傳文件?文件上傳是我們經常要用到的一個功能,那么現在我們就一起去看看實現JSP快速上傳文件的方法,希望能給你帶來幫助。

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

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("----------------------------"))    {// 表示是從開始符開始讀,否則應為剛讀取文件后的一個屬性,此時應少讀一次      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("文件信息:");    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);//此值應為空    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+"");    // out.println("文件名:"+filename+"");    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+"");        if (sign1.startsWith(sign))// 比對是否文件已傳完          break;      }      f.write(b, 0, l);      f.flush();    }    f.flush();    f.close();    long end = System.currentTimeMillis();// 傳送時間計時結束    // out.println("上傳文件用時:"+(end-begin)+"毫秒");    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 + "/";%>

My JSP 'submitFile.jsp' starting page

?

?

?

姓名
? 文件 ?
文件類型
?

?

?

?

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 + "/";%>

My JSP 'AnswerFile.jsp' starting page <% ServletInputStream in = request.getInputStream(); upload.setInputStream(in); String nam = upload.getParameter(); out.println("姓名:" + nam + "

"); long time = upload.getFileUpload(); out.println("文件上傳完畢,總共耗時:" + time + "毫秒
"); String leixing = upload.getParameter(); out.println("文件類型:" + leixing + "
"); in.close(); %>

?

回到首頁

?

以上就是實現JSP快速上傳文件的方法,我們用實例分析了JSP不使用第三方庫實現快速上傳文件的完整流程與相關技巧。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙江县| 濉溪县| 奎屯市| 中牟县| 奎屯市| 兴城市| 九江市| 云安县| 万载县| 句容市| 东丰县| 科尔| 新建县| 东光县| 永川市| 洛南县| 睢宁县| 东兰县| 迁西县| 霸州市| 前郭尔| 莆田市| 乳山市| 祁东县| 宜城市| 耒阳市| 马鞍山市| 鄄城县| 宁晋县| 平利县| 安阳市| 万荣县| 勐海县| 响水县| 岫岩| 牡丹江市| 塔河县| 民丰县| 庐江县| 平阳县| 舒兰市|