日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【已解决】Jsp实现文件上传功能

發(fā)布時(shí)間:2025/1/21 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【已解决】Jsp实现文件上传功能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

uploadExample.jsp 調(diào)用?doUpload.jsp,需要兩個(gè)文件一起

1、uploadExample.jsp

<%@ page contentType="text/html;charset=gb2312"%> <html> <title><%= application.getServerInfo() %></title> <body> 上傳文件程序應(yīng)用示例 <form action="doUpload.jsp" method="post" enctype="multipart/form-data"> <%-- 類型enctype用multipart/form-data,這樣可以把文件中的數(shù)據(jù)作為流式數(shù)據(jù)上傳,不管是什么文件類型,均可上傳。--%> 請(qǐng)選擇要上傳的文件<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"> <% //定義上載文件的最大字節(jié) int MAX_SIZE = 102400 * 102400; // 創(chuàng)建根路徑的保存變量 String rootPath; //聲明文件讀入類 DataInputStream in = null; FileOutputStream fileOut = null; //取得客戶端的網(wǎng)絡(luò)地址 String remoteAddr = request.getRemoteAddr(); //獲得服務(wù)器的名字 String serverName = request.getServerName();//取得互聯(lián)網(wǎng)程序的絕對(duì)地址 String realPath = request.getRealPath(serverName); realPath = realPath.substring(0,realPath.lastIndexOf("\\")); //創(chuàng)建文件的保存目錄 rootPath = realPath + "\\upload\\"; //取得客戶端上傳的數(shù)據(jù)類型 String contentType = request.getContentType(); try{ if(contentType.indexOf("multipart/form-data") >= 0){ //讀入上傳的數(shù)據(jù) in = new DataInputStream(request.getInputStream()); int formDataLength = request.getContentLength(); if(formDataLength > MAX_SIZE){ out.println("<P>上傳的文件字節(jié)數(shù)不可以超過" + MAX_SIZE + "</p>"); return; } //保存上傳文件的數(shù)據(jù) byte dataBytes[] = new byte[formDataLength]; int byteRead = 0; int totalBytesRead = 0; //上傳的數(shù)據(jù)保存在byte數(shù)組 while(totalBytesRead < formDataLength){ byteRead = in.read(dataBytes,totalBytesRead,formDataLength); totalBytesRead += byteRead; } //根據(jù)byte數(shù)組創(chuàng)建字符串 String file = new String(dataBytes); //out.println(file); //取得上傳的數(shù)據(jù)的文件名 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("="); //取得數(shù)據(jù)的分隔字符串 String boundary = contentType.substring(lastIndex + 1,contentType.length()); //創(chuàng)建保存路徑的文件名 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); //取得文件數(shù)據(jù)的開始的位置 int startPos = ((file.substring(0,pos)).getBytes()).length; //out.println(startPos); //取得文件數(shù)據(jù)的結(jié)束的位置 int endPos = ((file.substring(0,boundaryLocation)).getBytes()).length; //out.println(endPos); //檢查上載文件是否存在 File checkFile = new File(fileName); if(checkFile.exists()){ out.println("<p>" + saveFile + "文件已經(jīng)存在.</p>"); } //檢查上載文件的目錄是否存在 File fileDir = new File(rootPath); if(!fileDir.exists()){ fileDir.mkdirs(); } //創(chuàng)建文件的寫出類 fileOut = new FileOutputStream(fileName); //保存文件的數(shù)據(jù) fileOut.write(dataBytes,startPos,(endPos - startPos)); fileOut.close(); out.println(saveFile + "文件成功上載.</p>"); }else{ String content = request.getContentType(); out.println("<p>上傳的數(shù)據(jù)類型不是multipart/form-data</p>"); } }catch(Exception ex){ throw new ServletException(ex.getMessage()); } %> </body> </html>文件下載功能,參考文章:http://blog.csdn.net/guomutian911/article/details/59211606。有問題,可聯(lián)系:玉林師范學(xué)院,郭立,Q:316190672


總結(jié)

以上是生活随笔為你收集整理的【已解决】Jsp实现文件上传功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。