91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 192KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-02
  • 語言: Java
  • 標(biāo)簽: JavaWeb??

資源簡介

文件上傳下載,可解決多個安全訪問問題。 博客:http://blog.csdn.net/qq_37902949/article/details/78986446 。 這個是源碼demo,上一個不小心上傳了tomcat執(zhí)行文件。

資源截圖

代碼片段和文件信息

package?com.gx.servlet;??
??
import?java.io.File;??
import?java.io.FileInputStream;??
import?java.io.IOException;??
import?java.io.OutputStream;??
import?javax.servlet.ServletException;??
import?javax.servlet.http.HttpServlet;??
import?javax.servlet.http.HttpServletRequest;??
import?javax.servlet.http.HttpServletResponse;??

import?com.sun.org.apache.xml.internal.security.utils.base64;
??
public?class?DownloadServlet?extends?HttpServlet?{??
??
????public?void?doGet(HttpServletRequest?request?HttpServletResponse?response)??
????????????throws?ServletException?IOException?{??
????????response.setCharacterEncoding(“UTF-8“);??
????????//獲得要下載的文件名??
????????String?fileName?=?request.getParameter(“fileName“);??
????????//fileName?=?new?String(fileName.getBytes(“iso8859-1“)“UTF-8“);??//如果jsp頁面編碼是iso8859-1,需要使用這個轉(zhuǎn)換亂碼
????????//上傳的文件都是保存在/upload目錄下的子目錄當(dāng)中??
????????String?fileSaveRootPath=this.getServletContext().getRealPath(“/upload“);??
????????//通過文件名找出文件的所在目錄??
????????String?path?=?findFileSavePathByFileName(fileNamefileSaveRootPath);??
????????//得到要下載的文件??
????????File?file?=?new?File(pathfileName);??
????????System.out.println(“文件保存路徑:“+path+“\\“+fileName);??
????????//如果文件不存在??
????????if(!file.exists()){??
????????????request.setAttribute(“message“?“您要下載的資源已被刪除!!“);??
????????????request.getRequestDispatcher(“/message.jsp“).forward(request?response);??
????????????return;??
????????}??
????????//處理文件名??
????????String?realName?=?fileName.substring(fileName.indexOf(“_“)+1);??
?????????//設(shè)置響應(yīng)頭,控制瀏覽器下載該文件??
????????response.setHeader(“Content-Disposition“?String.format(“attachment;filename*=utf-8’zh_cn%s“java.net.URLEncoder.encode(realName“UTF-8“)));??
????????//讀取要下載的文件,保存到文件輸入流??
????????FileInputStream?in?=?new?FileInputStream(file);??
????????//創(chuàng)建輸出流??
????????OutputStream?out?=?response.getOutputStream();??
????????//創(chuàng)建緩沖區(qū)??
????????byte?buffer[]?=?new?byte[1024];??
????????int?len?=?0;??
????????//循環(huán)將輸入流中的內(nèi)容讀取到緩沖區(qū)當(dāng)中??
????????while((len=in.read(buffer))>0){??
?????????????//輸出緩沖區(qū)的內(nèi)容到瀏覽器,實(shí)現(xiàn)文件下載??
????????????out.write(buffer?0?len);??
??????????}??
????????//關(guān)閉文件輸入流??
????????in.close();??
????????//關(guān)閉輸出流??
????????out.close();??
????}??
??
????public?void?doPost(HttpServletRequest?request?HttpServletResponse?response)??
????????????throws?ServletException?IOException?{??
????????doGet(request?response);??
????}??
??
????????/**?
????????*?@Method:?findFileSavePathByFileName?
????????*?@Description:?通過文件名和存儲上傳文件根目錄找出要下載的文件的所在路徑?
????????*?@param?filename?要下載的文件名?
????????*?@param?saveRootPath?上傳文件保存的根目錄,也就是/upload目錄?
????????*?@return?要下載的文件的存儲目錄?
????????*/???
????????public?String?findFileSavePathByFileName(String?filenameString?saveRootPath){??
????????????int?hashcode?=?filename.hashCode();??
????????????int?dir1?=?hashcode&0xf;??//0--15??
????????????int?dir2?=?(hashcode&0xf0)>>4;??//0-15??
????????????String?dir?=?saveRootPath?+?“\\“?+?dir1?+?“\\“?+?dir

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-01-06?11:24??文件上傳下載\
?????目錄???????????0??2018-01-06?11:24??文件上傳下載\FileUpDownLoad\
?????文件?????????529??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.classpath
?????目錄???????????0??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.myeclipse\
?????文件?????????315??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.mymetadata
?????文件????????1757??2018-01-06?10:29??文件上傳下載\FileUpDownLoad\.project
?????目錄???????????0??2018-01-06?11:24??文件上傳下載\FileUpDownLoad\.settings\
?????文件?????????500??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.settings\.jsdtscope
?????文件?????????364??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.settings\org.eclipse.jdt.core.prefs
?????文件?????????480??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.settings\org.eclipse.wst.common.component
?????文件?????????252??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.settings\org.eclipse.wst.common.project.facet.core.xml
?????文件??????????49??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????目錄???????????0??2018-01-06?10:27??文件上傳下載\FileUpDownLoad\src\
?????目錄???????????0??2018-01-06?10:27??文件上傳下載\FileUpDownLoad\src\com\
?????目錄???????????0??2018-01-06?10:27??文件上傳下載\FileUpDownLoad\src\com\gx\
?????目錄???????????0??2018-01-06?11:24??文件上傳下載\FileUpDownLoad\src\com\gx\servlet\
?????文件????????3743??2018-01-06?10:48??文件上傳下載\FileUpDownLoad\src\com\gx\servlet\DownloadServlet.java
?????文件????????7312??2018-01-06?10:40??文件上傳下載\FileUpDownLoad\src\com\gx\servlet\UploadServlet.java
?????目錄???????????0??2018-01-06?11:24??文件上傳下載\FileUpDownLoad\WebRoot\
?????文件?????????551??2018-01-06?10:43??文件上傳下載\FileUpDownLoad\WebRoot\download.jsp
?????文件?????????359??2018-01-06?10:41??文件上傳下載\FileUpDownLoad\WebRoot\message.jsp
?????目錄???????????0??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\WebRoot\meta-INF\
?????文件??????????36??2018-01-06?10:25??文件上傳下載\FileUpDownLoad\WebRoot\meta-INF\MANIFEST.MF
?????文件?????????946??2018-01-06?10:42??文件上傳下載\FileUpDownLoad\WebRoot\upload.jsp
?????目錄???????????0??2018-01-06?11:24??文件上傳下載\FileUpDownLoad\WebRoot\WEB-INF\
?????目錄???????????0??2018-01-06?10:27??文件上傳下載\FileUpDownLoad\WebRoot\WEB-INF\classes\
?????目錄???????????0??2018-01-06?10:27??文件上傳下載\FileUpDownLoad\WebRoot\WEB-INF\classes\com\
?????目錄???????????0??2018-01-06?10:27??文件上傳下載\FileUpDownLoad\WebRoot\WEB-INF\classes\com\gx\
?????目錄???????????0??2018-01-06?11:24??文件上傳下載\FileUpDownLoad\WebRoot\WEB-INF\classes\com\gx\servlet\
?????文件????????3724??2018-01-06?10:48??文件上傳下載\FileUpDownLoad\WebRoot\WEB-INF\classes\com\gx\servlet\DownloadServlet.class
............此處省略6個文件信息

評論

共有 條評論

相關(guān)資源