strus 上传文件

(1) action代码

package comSys.struts.articleManager;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import comSys.service.ArticleService;

public class UploadArticleAction extends ActionSupport {
      private File upload; //上传的文件
        private String uploadFileName; //文件名称
        private String uploadContentType; //文件类型
        private String enableVisit;
        private String enableDownload;
        private int id;   //所属类型id
        private String message;
        private String des;
        private ArticleService service;
        
        public String execute() throws Exception {
            String realpath = ServletActionContext.getServletContext().getRealPath("/upload");
            Object username=ServletActionContext.getRequest().getSession().getAttribute("username");
            Object jobNum=ServletActionContext.getRequest().getSession().getAttribute("jobNum");
            if(username==null||username.equals("")||jobNum==null||jobNum.equals("")){    //未登录要求重新登录
                return ERROR;
            }else if (upload != null) {
                File file=new File(realpath,username.toString());
                if(!file.exists()){
                    file.mkdirs();
                }
                File savefile = new File(file, uploadFileName);
                FileOutputStream fo = new FileOutputStream(savefile);
                FileInputStream fi = new FileInputStream(upload);
                byte[] buffer = new byte[1024];
                int len = 0;
                while((len = fi.read(buffer))!=-1){
                    fo.write(buffer,0,len);
                }
                fo.close();
                fi.close();
                
                boolean enableDownloadBool=enableDownload.equals("0")?false:true;
                boolean enableVisitBool=enableVisit.equals("0")?false:true;
                service=new ArticleService();
                if(service.addArticle(uploadFileName, id, enableDownloadBool,enableVisitBool , "/upload/"+username.toString(),des)>-1){
                     this.setMessage("文件上传成功!!");
                }else
                    this.setMessage("文件上传失败!!");              
            }
            return SUCCESS;
        }
        
        public File getUpload() {
            return upload;
        }
        public void setUpload(File upload) {
            this.upload = upload;
        }
        public String getUploadFileName() {
            return uploadFileName;
        }
        public void setUploadFileName(String uploadFileName) {
            this.uploadFileName = uploadFileName;
        }
        public String getUploadContentType() {
            return uploadContentType;
        }
        public void setUploadContentType(String uploadContentType) {
            this.uploadContentType = uploadContentType;
        }
        public String getEnableVisit() {
            return enableVisit;
        }
        public void setEnableVisit(String enableVisit) {
            this.enableVisit = enableVisit;
        }
        public String getEnableDownload() {
            return enableDownload;
        }
        public void setEnableDownload(String enableDownload) {
            this.enableDownload = enableDownload;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getMessage() {
            return message;
        }

        public void setMessage(String message) {
            this.message = message;
        }

        public String getDes() {
            return des;
        }

        public void setDes(String des) {
            this.des = des;
        }
        
}

(2) jsp

  <form action="<%=path %>/UploadArticleAction.action" method="post" enctype="multipart/form-data">
    <table>
      <tr><td>上传文件:</td><td><input type="file" name="upload" id="upload"></td></tr>
      <tr><td>是否允许访问:</td><td><input type="radio" name="enableVisit" value="0">不允许访问<input type="radio" name="enableVisit" value="1">允许访问</td></tr>
      <tr><td>是否允许下载:</td><td><input type="radio" name="enableDownload" value="0">不允许下载<input type="radio" name="enableDownload" value="1">允许下载</td></tr>
      <tr><td colspan="2">
        <span style="text-align:center;">描述:</span><textarea name="des" id="des" cols="50" rows="5"></textarea>
      </td></tr>
      <tr><td colspan="2" align="right">
                            <input type="button" value="确定" style="margin-right: 10px;" onclick="addArticle()">
                            <input type="button" value="取消" style="margin-right: 10px;" onclick="cancle()">
        <input type="hidden" value="${id}" name="id">
        </td>
        </tr>
    </table>
    </form>
原文地址:https://www.cnblogs.com/sandyflower/p/3895065.html