一、文件上传快速入门

 

1)、关于上传表单三要素

>>尽量以POST请求方式上传,因为GET支持文件大小是有限制的。

>>必须要加上enctype="multipart/form-data"表示上传的文件,以随着请求体经过特殊编码后,一同传入服务器

>>每个表单项,必须取一个名字(name),因为服务器端便于通过名字(name)收集信息.

 

 2)、fileUpload拦截器文件上传拦截器,自动注入三个参数,如下所示:

    private String uploadContentType;//上传文件的类型,(Fileupload拦截器传入的参数)
    private File upload;//上传的文件,(Fileupload拦截器传入的参数)
    private String uploadFileName;//上传文件的真实文件名,(Fileupload拦截器传入的参数)
    

与jsp页面中的name相对应.

注意:upload和表单项与<s:file>中的name属性一致

    upload拼上contentType其中C要大写.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <s:form action="UploadAction" enctype="multipart/form-data" method="POST">
        <s:textfield name="username"/>
        <s:file name="upload" />
        <s:submit value="提交"/>
    </s:form>
</body>
</html>

 

3)框架自身有fileUpload文件上传拦截器

  在默认栈中,有一个fileUpload文件上传拦截器,但是没有下载拦截器,源码参见struts2-core-2.3.16-sources.jar/struts-default.xml

 

4)、代码分析

UploadAction.java

package action;

import java.io.File;

import com.opensymphony.xwork2.ActionSupport;

/**
 * @ClassName: UploadAction
 * @Description: 文件上传
 * @author: amosli
 * @email:amosli@infomorrow.com
 * @date Jan 14, 2014 1:50:28 AM
 */
public class UploadAction extends ActionSupport {
    private static final long serialVersionUID = -8920466592471253212L;
    private String username;// 用户名
    private String uploadContentType;// 上传文件的类型,(Fileupload拦截器传入的参数)
    private File upload;// 上传的文件,(Fileupload拦截器传入的参数)
    private String uploadFileName;// 上传文件的真实文件名,(Fileupload拦截器传入的参数)

    public void setUsername(String username) {
        this.username = username;
    }

    public void setUploadContentType(String uploadContentType) {
        this.uploadContentType = uploadContentType;
    }

    public void setUpload(File upload) {
        this.upload = upload;
    }

    public String getUsername() {
        return username;
    }

    public String getUploadContentType() {
        return uploadContentType;
    }

    public File getUpload() {
        return upload;
    }

    public String getUploadFileName() {
        return uploadFileName;
    }

    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }

    public String uploadMethod() {

        return SUCCESS;
    }

}
View Code

相关文章:

  • 2021-12-18
  • 2021-09-24
  • 2021-11-29
  • 2021-06-30
  • 2022-01-20
  • 2021-10-22
  • 2021-06-11
  • 2021-11-06
猜你喜欢
  • 2021-07-30
  • 2021-06-18
  • 2021-09-16
  • 2022-01-07
  • 2021-10-30
  • 2021-07-21
相关资源
相似解决方案