Struts 2 파일 업로드 기능 인 스 턴 스 분석 실현

1.struts 2 환경 구축
myeclipse 아래 에서 항목->MyEclipse->Project Facets->install Apache Struts 2 를 우 클릭 합 니 다.
직접 만 들 려 면 struts 2 패 키 지 를 다운로드 하고 struts.xml 설정 파일 을 써 야 합 니 다.
웹.xml 파일 설정 은 다음 과 같 습 니 다.

<filter>
 <filter-name>struts2</filter-name>
 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>struts2</filter-name>
 <url-pattern>*.action</url-pattern>
 </filter-mapping>
파일 업로드
1.프론트 페이지:
업로드 페이지:

<body>
 <form action="upload.action" method="post" enctype="multipart/form-data">
  <input type="file" name="upload"/>
  <input type="submit" value="  "/>
  <br>
  ${result}
 </form>
 </body>
input name 속성 은 배경 이름과 일치 합 니 다.
업로드 실패 페이지:

<body>
 <h2>    </h2>
 <s:fielderror></s:fielderror>
 </body>
필요:

<%@ taglib uri="/struts-tags" prefix="s"%>
2.백 스테이지 액 션
주요 속성 upload,uploadContentType,uploadFileName.

package com.yf.action;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport{
 private File upload;
 private String uploadContentType;
 private String uploadFileName;
 private String result;
 public File getUoload() {
  return upload;
 }
 public void setUpload(File upload) {
  this.upload = upload;
 }
 public String getUploadContentType() {
  return uploadContentType;
 }
 public void setUploadContentType(String uploadContentType) {
  this.uploadContentType = uploadContentType;
 }
 public String getUploadFileName() {
  return uploadFileName;
 }
 public void setUploadFileName(String uploadFileName) {
  this.uploadFileName = uploadFileName;
 }
 public String getResult() {
  return result;
 }
 public void setResult(String result) {
  this.result = result;
 }
 @Override
 public String execute() throws Exception {
  String path = ServletActionContext.getServletContext().getRealPath("/images");
  File file = new File(path);
  if(!file.exists()){
   file.mkdir();
  }
  System.out.println(upload);
  FileUtils.copyFile(upload, new File(file,uploadFileName));
  result = "    ";
  return SUCCESS;
 }
}
3.struts.xml 파일 설정
action 설정 및 차단기 설정 으로 업로드 파일 의 형식 과 크기 를 제한 합 니 다.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
 <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
 <constant name="struts.devMode" value="true"/>
 <constant name="struts.multipart.saveDir" value="/tmp"/>
 <constant name="struts.custom.i18n.resources" value="app"></constant>
 <package name="default" namespace="/" extends="struts-default">
  <action name="upload" class="com.yf.action.UploadAction">
  <result>/index.jsp</result>
  <result name="input">/error.jsp</result>
  <!--                   -->
  <interceptor-ref name="fileUpload">
   <param name="allowedTypes">image/bmp,image/x-png,image/gif,image/jpeg</param>
   <param name="maximumSize">2M</param>
  </interceptor-ref>
  <interceptor-ref name="defaultStack"></interceptor-ref>
  </action>
 </package>
</struts> 
4.새 속성 파일
파일 업로드 실패 정 보 를 프론트 에 표시 하고 오류 정 보 를 처리 합 니 다.
这里写图片描述
파일 내용 은 다음 과 같 습 니 다.

struts.messages.error.file.too/large=\u4E0A\u4F20\u6587\u4EF6\u592A\u5927\u4E86\uFF01
struts.messages.error.content.type.not.allowed=\u4E0A\u4F20\u6587\u4EF6\u7C7B\u578B\u4E0D\u7B26\uFF01
추가:
Name:struts.messages.error.file.too/large
value:파일 업로드 가 너무 커 요!
Name : struts.messages.error.content.type.not.allowed
value:업로드 파일 형식 이 맞지 않 습 니 다!
실행 결 과 는 다음 과 같 습 니 다.
jpg 그림 을 선택 하 십시오.크기 가 2M 을 초과 하지 않 습 니 다.실행 후
这里写图片描述
그림 이 아 닌 파일 선택:
这里写图片描述
파일 을 대량으로 업로드 하려 면 배경 upload,uploadContentType,uploadFileName 을 모두 List 로 바 꾸 고 업로드 파일 을 반복 적 으로 읽 어 하 드 디스크 에 저장 하 며 프론트 에 input 을 추가 합 니 다.name 속성 이 일치 합 니 다.
위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 Struts 2 가 파일 업로드 기능 의 실례 해석 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 답 해 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기