java의 Struts2 파일 업로드 및 다운로드 예
multipart/form-data
<s:form action="testUpload" enctype="multipart/form-data">
<s:textfield name="userName[0]" label=" -1"></s:textfield>
<s:file name="photos" label=" "></s:file>
<s:textfield name="userName[1]" label=" -2"></s:textfield>
<s:file name="photos" label=" "></s:file>
<s:textfield name="userName[2]" label=" -3"></s:textfield>
<s:file name="photos" label=" "></s:file>
<s:submit value=" "></s:submit>
</s:form>
public class UploadAction extends ActionSupport{
@Setter@Getter
private List<File> photos;
@Setter@Getter
private List<String> photosContentType;
@Setter@Getter
private List<String> photosFileName;
@Setter@Getter
private List<String> userName;
public String testUpload() throws IOException {
System.out.println("userName: "+userName);
System.out.println("photos: "+photos);
System.out.println("photosFileName: "+ photosFileName);
System.out.println("photosContentType: "+photosContentType);
// upload
// ServletContext
ServletContext servletContext = ServletActionContext.getServletContext();
//
String realPath = servletContext.getRealPath("/upload");
System.out.println(realPath);
File uploadFile = new File(realPath);
//
if (!uploadFile.exists()){
//
uploadFile.mkdir();
}
for (int i = 0; i < photos.size(); i++) {
UUID uuid = UUID.randomUUID();
FileUtils.copyFile(photos.get(i), new File(realPath + "/" + uuid + photosFileName.get(i)));
}
return SUCCESS;
}
}
1. 몇 가지 사소한 문제를 처리합니까?1. 파일 이름 이름을 바꾸면 일반적으로 파일 이름 앞에 접두사로 UUID를 생성할 수 있습니다.
2. 개별 파일 크기 제한
3. 파일 유형 제한
4. 총 파일 크기 제한
2. Struts2에서 FileUpload 차단기를 사용하여 이러한 속성 값을 설정할 수 있습니다.
FileUpload 차단기는 세 가지 속성을 설정할 수 있습니다.
<constant name="struts.devMode" value="true"/>
<!-- -->
<constant name="struts.multipart.maxSize" value="2097152"/>
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor-stack name="myInterceptor">
<interceptor-ref name="defaultStack">
<!-- ,Commons FileUpload 2M -->
<param name="fileUpload.maximumSize">57,408</param>
<!-- -->
<param name="fileUpload.allowedTypes">image/pjpeg,image/gif</param>
<!-- -->
<param name="fileUpload.allowedExtensions">jpg,gif</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myInterceptor"></default-interceptor-ref>
<action name="testUpload" class="org.pan.action.UploadAction" method="testUpload">
<result name="success">/WEB-INF/views/success.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>
하나.파일 업로드와 관련된 오류 메시지?1. 파일 업로드와 관련된 오류 메시지는struts-messages에 있습니다.properties 파일에 미리 정의되어 있습니다.
2. Action에 해당하는 리소스 파일을 파일에 업로드하거나 i18nn_zh_CN.properties 국제화 자원 파일에서 오류 메시지 재정의
struts.messages.error.file.too.large=
struts.messages.error.content.type.not.allowed=
struts.messages.error.file.extension.not.allowed=
struts.messages.upload.error.SizeLimitExceededException=
파일 다운로드어떤 응용 프로그램에서는 사용자의 브라우저에 동적으로 파일을 보내야 할 수도 있지만, 이 파일의 이름과 저장 위치는 프로그래밍할 때 예측할 수 없다
예제 코드
<a href="testDownLoad"> </a>
public class DownLoadAction extends ActionSupport{
// Action
@Setter@Getter
private String contentType;
@Setter@Getter
private long contentLength;
@Setter@Getter
private String contentDisposition;
@Setter@Getter
private InputStream inputStream;
public String testDownLoad() throws FileNotFoundException, UnsupportedEncodingException {
// ServletContext
ServletContext servletContext = ServletActionContext.getServletContext();
//
String realPath = servletContext.getRealPath("/WEB-INF/file/ .mp3");
//
inputStream = new FileInputStream(realPath);
//
contentType = servletContext.getMimeType(realPath);
//
contentLength = new File(realPath).length();
//
String fileName = " .mp3";
fileName = new String(fileName.getBytes("gbk"),"iso8859-1");
contentDisposition = "attachment;filename="+fileName;
return SUCCESS;
}
}
<!-- -->
<action name="testDownLoad" class="org.pan.action.DownLoadAction" method="testDownLoad">
<result type="stream">
<!-- -->
<param name="bufferSize">2048</param>
</result>
</action>
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java의 Struts2 파일 업로드 및 다운로드 예파일 업로드 Struts 응용 프로그램에서 File Upload 차단기와 Jakarta Commons File Upload 구성 요소로 파일을 업로드할 수 있습니다. Jsp 페이지의 파일 업로드 폼에 파일 탭을 사용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.