zoukankan      html  css  js  c++  java
  • struts2文件上传

    struts2本身并没有提供上传的插件

    首先我们要建立一个com.vo包,然后建立一个EmpVo类,具体代码如下:

     1 package com.vo;
     2 
     3 import java.io.File;
     4 
     5 public class EmpVo {
     6     public File file;
     7     public String fileFileName;
     8     public String fileContentType;
     9     public File getFile() {
    10         return file;
    11     }
    12     public void setFile(File file) {
    13         this.file = file;
    14     }
    15     public String getFileFileName() {
    16         return fileFileName;
    17     }
    18     public void setFileFileName(String fileFileName) {
    19         this.fileFileName = fileFileName;
    20     }
    21     public String getFileContentType() {
    22         return fileContentType;
    23     }
    24     public void setFileFileContentType(String fileFileContentType) {
    25         this.fileContentType = fileFileContentType;
    26     }
    27     
    28 }

    在视图层显示页面应该这样写:

    1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    2 <%@ taglib prefix="s" uri="/struts-tags" %>
    3 <form action="emp!upload.action" enctype="multipart/form-data" method="post">
    4     文件上传:<input type="file" value="浏览" name="empVo.file"><br>
    5     <input type="submit" value="提交">
    6 </form>

    注意这里<form>标签里面一定要加上enctype="multipart/form-data"这是处理文件上传的;name="empVo.file"这里struts2会自动将文件的内容传给EmpVo里面的file,文件名传给fileFileName,文件后缀名传给fileContentType.

    com.action

     1 package com.action;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.io.OutputStream;
    10 
    11 import org.apache.struts2.ServletActionContext;
    12 
    13 import com.service.EmpService;
    14 import com.vo.EmpVo;
    15 
    16 public class EmpAction {
    17     private EmpVo empVo;
    18     
    19     public EmpVo getEmpVo() {
    20         return empVo;
    21     }
    22 
    23     public void setEmpVo(EmpVo empVo) {
    24         this.empVo = empVo;
    25     }
    26 
    27     //上传
    28     public String upload() throws IOException{
    29         //要上传到哪里
    30         String path=ServletActionContext.getServletContext().getRealPath("/text");
    31         //得到上传内容,创建文件输入流
    32         InputStream is=new FileInputStream(empVo.getFile());
    33         if(is==null){
    34             return "err";
    35         }
    36         //设置目标文件
    37         File toFile=new File(path,empVo.getFileFileName());
    38         //创建文件输出流
    39         OutputStream os=new FileOutputStream(toFile);
    40         //设置缓存  
    41         byte[] buffer=new byte[1024];
    42         int length=0;
    43         //读取file文件输出到tofile文件中
    44         while((length=is.read(buffer))>0){
    45             os.write(buffer,0,length);
    46         } 
    47         System.out.println("上传文件名"+empVo.getFileFileName()); 
    48         System.out.println("上传文件类型"+empVo.getFileContentType());
    49         is.close();
    50         os.close();
    51 
    52         return "show";
    53     }
    54 
    55 
    56 }

    文件夹text要放在WebRoot下面

    发布运行的时候会自动将提交的内容上传到服务器

  • 相关阅读:
    docker for zabbix
    由阿里云宕机引发的思考
    linux清空文件
    RDS导入注意事项
    coreos 常见问题
    2018年7月28日笔记
    2018年7月26日笔记
    2018年7月24日笔记
    作业五之系统设计时所实现的质量属性战术
    作业四之阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章
  • 原文地址:https://www.cnblogs.com/xinxinjava/p/3029289.html
Copyright © 2011-2022 走看看