첫 번째는 웹 페이지 부분 인 upload_file.jsp입니다
<%@ page language = "java"image = "java.util.*"pageencoding = "utf-8"%> <! > <form action = "uploadfile"method = "post"encType = "multipart /form-data"> <!-파일 도메인-> <입력 유형 = "file"name = "source" /< /> 입력 유형 = " "value ="Upload "> </form> </body> </html>을 제출하십시오
파일 업로드 형식의 경우 Metho가 게시하도록 설정해야하며 ENCTYPE는 Multipart/Form-Data로 설정해야합니다.
위의 코드 에서이 양식이 업로드 파일 에이 작업을 처리하여 처리하기 위해 제출 된 것을 알 수 있습니다.
<action name = "uploadfile"> <result name = "success">/uploadResult.jsp </result> <!-FileUploading. = "FileUpload"> <!-파일 크기 20m의 크기를 제한하고, 장치는 바이트-> <sem name = "maximsize"> 20971520 </param> </interceptor-ref> <!-기본 인터셉터를 선언해야합니다. PileUpload interceptor-> <Interceptor-Ref Name = "DefaultStack" /> < /action> 후.
FileUpload 인터셉터는 파일 유형 및 크기를 제한하기 위해 업로드 경로를 설정하는 데 사용됩니다.
파일의 크기와 관련하여 <param name = "maxumSize">> <struts> 태그 아래에 추가해야합니다.
<constant name = "struts.multipart.maxsize"value = "21000000"/>/>
이 코드 라인은 전체 프로젝트에서 파일을 업로드 할 수있는 파일 크기의 최대 크기를 나타냅니다. 즉,이 프로젝트에 업로드 된 단일 파일 크기는 21000000 바이트 (약 20m)를 초과 할 수 없습니다 기본적으로 업로드 할 수있는 파일은 2M이므로 2M 파일 만 업로드 할 수있는 2M 파일의 제한을 중단하는 메소드이기도합니다.
파일 유형과 관련하여 사진 파일로 제한 해야하는 경우 다음과 같이 구성 할 수 있습니다.
<!-그림 파일의 업로드 만 설정-> <intercepter-Ref name = "fileUpload"> <posm name = "allendtypes"> image/bmp, image/x-png, image/gif, image/jpeg < /< /param> < /intercepter-Ref> <인터셉터-리프 이름 = "DefaultStack" /> />
레이블의 값은 파일의 값이 마임 유형이며 공통 파일의 마임 유형은%tomcat_home%/conf/web.xml에서 찾을 수 있다는 것입니다.
Word 파일로 제한 되려면 <terecedor>가 이와 같이 구성 할 수 있습니다.
<! -Sendling 만 업로드 할 수 있습니다.> <intercepter-ref name = "fileUpload"> <sem name = "allendtypes"> application/msword, application/vnd.openxmlformats-offic edocument.wordProcessingMl.Document </param> < /intercepter-Ref> <interceptor-Ref name = "defaultstack" />
그러나 파일 유형을 제한하는 것으로 생각합니다. JavaScript를 사용하여 프론트 엔드에서 제한을 구현하는 것이 좋습니다.
다음으로, write uploadaction, 업로드에 필요한 개인 속성은 소스이며, upload_file.js p의 파일 도메인의 이름 속성과 일치하는 소스입니다. 또한 두 가지 더 중요한 개인 속성이 있습니다.
private String sourceFileName; // 업로드 할 파일 이름
개인 문자열 sourceContentType; // 업로드 할 파일 유형의 두 변수 형식은 이전 접두사 소스 및 upload_file.jsp와 동일합니다.
요약하면, 예를 들어, upload_file.jsp의 중국 필드 도메인의 이름 = "abc"라는 이름의 이름 = "abc"는이 작업에서 정의되어야합니다.
개인 파일 ABC; 개인 문자열 ABCFILENAME;
ABC는 업로드 할 파일 개체를 자동으로 얻고 ABCFILENAME는 파일 이름을 자동으로 얻고 ABCContetType는 파일 유형을 자동으로 얻습니다.
업로드 경로에 집중해야합니다.
절대 경로에 업로드 된 경우 꽤 좋지만 프로젝트 루트 디렉토리의 업로드 폴더에 업로드하려면이 업로드 폴더의 전체 경로를 얻는 방법은 무엇입니까?
나는 사용하려고 노력했다
servletactionContext.getServletContext ().
그러나 귀환으로 돌아 왔습니다. 또한 사용됩니다
servletactionContext.getRequest ().
여전히 Null로 돌아 왔습니다. 그러나이 문제를 온라인으로 확인하면 많은 사람들 이이 글을 추천하여 어떤 경우에는 실현 가능할 수 있음을 증명하지만 동시에 Null으로 돌아 오는 사람들이 있습니다. ServiceContextare 인터페이스. 특정 방법은 다음과 같습니다.
공개 클래스 업하는 ActionSupport imvletcontextare { / ** * 생략 ... * / prive servletcontext etcontext () {return context;} public void setContext (serviceContext Context) {this.context = @ void setservletcontext (servletcontext context) {this.context = context;}}
그런 다음 사용하십시오
String Path = Context.getRealPath ( "/Upload");
업로드 폴더의 경로를 가져옵니다. 그런 다음 업로드를 실행합니다.
/*업로드 폴더에 파일을 업로드*/파일 saveful = path, sourceFileName (sourceFileName);
이 방법은 프로젝트가 포장되어 다른 환경으로 전송 될 때 올바른 경로를 피하는 것처럼 보이기 때문에 개인적 으로이 방법을 권장합니다.
뒤로 업로드에 대한 전체 업로드 코드를 붙여 넣습니다.
com.lidi.Action; 클래스 업로드는 ActionSupport imvletcontextare { / ** / private inl long serviceversionuid = 1l; 파일 유형의 유형 개인 ServletContext 컨텍스트; / public file getSource () {return source;} public void setSource (파일 소스) {this.source = oust getSourceFilename (return sourceFilename;} public void sourceFilename) {this.sourceFilename;} public String getSoUrcOntentType () {return sourcOcontentType;} public voidth e (string sourcOcontentType) {this.sourcOntentType = sourcOntentType;} @OverRide public void setServletContext (servicetContext 컨텐츠) {conteText ()} the ProblicTeCute ()}. *업로드 파일을 가져옵니다. 폴더를 업로드하십시오 폴더* / 파일 (pathfile) (savefile);
결과 업로드 페이지 업로드 레스 룰 (JSP)
<%@ page language = "java"image = "java.util.*"pageencoding = "utf-8"%> <%@ taglib uri = "/struts-tags"prefix = "s"%> <! DocType html> <html> <head> <title> 결과 업로드 결과 </title> </head> <body> <p> 파일 이름 : <s : 속성 값 = "SourceFilename"/> </p> <p> 파일 유형 : <s : 속성 값 = "sourceContentType" /> < /p> <p> 파일 : <a href = "upload /<s : 속성 값 ="sourceFilename " /"> <s : 속성 = "sourcefi lename" /> </a> </p> </body> </html>
위는이 기사의 모든 내용입니다.