최근에 파일 업로드, 다운로드 및 온라인에서 파일을 열었습니다. 처음에는 파일 업로드 인터페이스에는 다른 양식 (예 : 입력 상자, 암호 등)이 포함되어 있으며 업로드 프로세스 중에 많은 문제가 발생했습니다. 아래에는 파일 업로드, 다운로드 및 온라인에서 파일을 열 수있는 테스트 프로그램을 작성했습니다.
먼저 렌더링을 참조하십시오.
핵심 코드 :
패키지 com.jefry; import java.io.file; import java.io.fileInputStream; import java.io.ioexception; import java.net.url; java.util.arraylist 가져 오기; import java.util.iterator; Java.util.list 가져 오기; javax.servlet.servletexception import; javax.servlet.servletoutputstream; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.disk.diskfileitemfactory; import org.apache.commons.fileupload.servlet.servletfileupload; / ** * 서블릿 구현 클래스 FileUpload */ public class fileUpload 확장 httpservlet {private static final long serialversionuid = 1L; 개인 정적 최종 문자열 filedir = "f :/"; /*** 기본 생성자. */ public fileUpload () {} Protected void doget (httpservletrequest request, httpservletResponse Response) servleTeXception, ioException {String afilename = request.getParameter ( "filename"); 문자열 온라인 = request.getParameter ( "온라인"); fileInputStream in = null; servletoutputStream out = null; 부울 isonline = online! = null? 사실 : 거짓; try {if (isonline) {url u = new url ( "file : //" + filedir + afilename); response.setContentType (u.openConnection (). getContentType ()); response.setHeader ( "내용화", "인라인; filename ="+afilename); } else {response.setContentType ( "application/x-msdownload"); response.setHeader ( "내용화", "첨부 파일; filename =" + afilename); } in = new FileInputStream (filedir + afilename); out = response.getOutputStream (); out.flush (); int aread = 0; while ((aread = in.read ())! = -1 & in! = null) {out.write (aread); } out.flush (); } catch (Throwable e) {e.printstacktrace (); } 마침내 {try {in.close (); out.close (); } catch (Throwable e) {e.printstacktrace (); }}} 보호 된 void dopost (httpservletrequest 요청, httpservletreponse 응답) servletexception, ioexception {try {diskfileitemfactory filefactory = new diskfileitemfactory (); servletfileupload fu = 새로운 servletfileupload (filefactory); List FileItems = fu.parserequest (요청); iterator iter = fileitems.iterator (); 문자열 업 로더 = NULL; 문자열 날짜 = null; list <string> filenames = new arraylist <string> (); while (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (! item.isformfield ()) {// 파일 문자열 oldfilename = item.getName (); 문자열 newFilename = null; int delimiter = OldFilename.lastIndexof ( "/"); if (delimiter == -1) NewFilename = OldFilename.substring (Delimiter + 1); else newfilename = oldfilename; filenames.add (newfilename); item.write (새 파일 (filedir + newfilename)); } else {// form String fieldName = item.getFieldName (); if ( "업 로더".Equals (FieldName)) {uploader = item.getString (); } else if ( "date".equals (fieldName)) {date = item.getString (); }}} request.setAttribute ( "filenames", filenames); request.getRequestDispatcher ( "download.jsp"). forward (요청, 응답); } catch (예외 e) {}}} index.jsp
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtml 4.01 transitional // en" "http://www.w3.org/tr/tml/html 4/tml/html 4/tml 4.html/html 4.tml. <html> <head> <meta http-equiv = "content-type"content = "text/html; charset = utf-8"> <title> 제목 삽입 제목 </title> </head> <body> <form action = "fileUpload"메서드 = "post"entertype = "multiptart/form-data"> <input type = input type = input type = input " 파일 2 : <입력 유형 = "파일"이름 = "file2"/> <br> 업 로더 : <입력 유형 = "텍스트"이름 = "업 로더"/> <br> 날짜 : <input type = "text"name = "date"/> <br> <입력 유형 = "제출"value = "제출"/> </body> </html>
다운로드 .jsp
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtml 4.01 transitional // en" "http://www.w3.org/tr/tml/html 4/tml/html 4/tml 4.html/html 4.tml. <%@page import="java.util.List"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <br> --------------直接下载------------ <br> <% List<String> fileNames = (List<String> ) request.getAttribute ( "filenames"); for(String fileName : fileNames) { %> <form action="FileUpload" method="get"> <input type="hidden" name="fileName" value="<%=fileName %>" /> <input type="submit" value="下载:<%=fileName %>" /> </form> <% } %> <br> ---------------------------- <% for(String fileName : filenames) { %> <form action = "fileupload"method = "get"> <input type = "hidden"name = "filename"value = "< %= filename %>" /> <입력 유형 = "hidden"name = "online"value = "yes" /> <input type = "value = < %= filename>" /> < %} %> " </body> </html>이 기사는 "Java 업로드 작업 기술의 요약"으로 편집되었으며 모든 사람들은 배우고 읽을 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.