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

首頁 > 編程 > JSP > 正文

【已解決】Jsp實現文件上傳功能

2019-11-06 08:32:40
字體:
來源:轉載
供稿:網友

uploadExample.jsp 調用 doUpload.jsp,需要兩個文件一起

1、uploadExample.jsp

<%@ page contentType="text/html;charset=gb2312"%><html><title><%= application.getServerInfo() %></title><body>上傳文件程序應用示例<form action="doUpload.jsp" method="post" enctype="multipart/form-data"><%-- 類型enctype用multipart/form-data,這樣可以把文件中的數據作為流式數據上傳,不管是什么文件類型,均可上傳。--%>請選擇要上傳的文件<input type="file" name="upfile" size="50"><input type="submit" value="提交"></form></body></html>2、doUpload.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"><%//定義上載文件的最大字節int MAX_SIZE = 102400 * 102400;// 創建根路徑的保存變量String rootPath;//聲明文件讀入類DataInputStream in = null;FileOutputStream fileOut = null;//取得客戶端的網絡地址String remoteAddr = request.getRemoteAddr();//獲得服務器的名字String serverName = request.getServerName();//取得互聯網程序的絕對地址String realPath = request.getRealPath(serverName);realPath = realPath.substring(0,realPath.lastIndexOf("//"));//創建文件的保存目錄rootPath = realPath + "//upload//";//取得客戶端上傳的數據類型String contentType = request.getContentType();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>");}//檢查上載文件的目錄是否存在File fileDir = new File(rootPath);if(!fileDir.exists()){fileDir.mkdirs();}//創建文件的寫出類fileOut = new FileOutputStream(fileName);//保存文件的數據fileOut.write(dataBytes,startPos,(endPos - startPos));fileOut.close();out.println(saveFile + "文件成功上載.</p>");}else{String content = request.getContentType();out.println("<p>上傳的數據類型不是multipart/form-data</p>");}}catch(Exception ex){throw new ServletException(ex.getMessage());}%></body></html>文件下載功能,參考文章:http://blog.csdn.net/guomutian911/article/details/59211606。有問題,可聯系:玉林師范學院,郭立,Q:316190672


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌黎县| 卢湾区| 齐齐哈尔市| 元朗区| 开平市| 邮箱| 黑水县| 汾阳市| 渭源县| 高州市| 吉首市| 江油市| 莎车县| 元江| 玉树县| 昌平区| 和政县| 惠水县| 平潭县| 中西区| 开远市| 含山县| 舒兰市| 金堂县| 长春市| 汪清县| 彭州市| 万州区| 晋中市| 吉安市| 霍邱县| 韶山市| 耒阳市| 龙川县| 响水县| 论坛| 东莞市| 财经| 云安县| 通州区| 讷河市|