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下面

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

  • 相关阅读:
    正则表达式(一个字符串翻转的例子)(http://www.cnblogs.com/hai98)
    电话号码正则表达式
    用哪种方法判断字符串为空更快速
    SQL内数据类型
    正则表达式基础(http://www.cnblogs.com/hai98)
    随机生成数
    C#源码 备份和恢复数据库
    ajax技术制作得在线歌词搜索功能
    ReadyGo新闻管理系统 1.5版 无任何使用限制
    最新完成的asp.net 2.0网站
  • 原文地址:https://www.cnblogs.com/xinxinjava/p/3029289.html
Copyright © 2011-2022 走看看