struts2实现单文件上传

新建web项目,导入Struts2,配置好所有东西就可以开始实现了
项目目录:
这里写图片描述

  1. 先实现上传的这个界面,很简单就是一个表单
    index.jsp
 <body>
     <form action="uploads" method="post" enctype="multipart/form-data" >
                上传文件:<input type="file" name="file1"><br/>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="提交">
  </body>

这里写图片描述
注意:在进行文件上传时,表单提交方式是post的方式,因为文件上传时二进制文件可能会很大,enctype属性是multipart/form-data,不然就会以二进制文本上传到服务器端
2. 上传成功页面
success.jsp

  <body>
 上传成功!<br/>  
  </body>
  1. 上传失败页面
  <body>
 上传失败!<br/>  
  </body>
  1. struts.xml
     <constant name="struts.multipart.maxSize" value="10240000" />
     <package name="default" namespace="/" extends="struts-default" >
        <action name="uploads" class="mypackage.FileUpload">

            <result name="success">/success.jsp</result>  
            <result name="error">/error.jsp</result>         
          </action>

     </package>
  1. FileUpload.java
package mypackage;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class FileUpload extends ActionSupport{
        private File file1 ; //具体上传文件的 引用 , 指向临时目录中的临时文件  
        public String file1FileName ;  // 上传文件的名字 ,FileName 固定的写法  



        public File getFile1() {  
            return file1;  
        }  
        public void setFile1(File file1) {  
            this.file1 = file1;  
        }  
        public String getFile1FileName() {  
            return file1FileName;  
        }  
        public void setFile1FileName(String file1FileName) {  
            this.file1FileName = file1FileName;  
        }  


        @Override  
public String execute() throws Exception {  
    if(file1==null)
        return "error";
            //获取文件存储路径  
    String path = ServletActionContext.getRequest().getRealPath("/upload");  ;  
            //输出流  
            OutputStream os = new FileOutputStream(new File(path,file1FileName));  
            //输入流  
            InputStream is = new FileInputStream(file1);  

            byte[] buf = new byte[1024];  
            int length = 0 ;  

            while(-1 != (length = is.read(buf) ) )  
            {  
                os.write(buf, 0, length) ;  
            }  
            is.close();  
            os.close();  

            return "success";  
        }  
}

运行:
这里写图片描述
这里写图片描述

如果不选中上传的文件,直接提交,显示上传失败
这里写图片描述

这里写图片描述

此时,一定很纳闷文件上传到哪里去了,我的web项目是在Tomcat7服务器上配置的,所以文件上传到Tomcat7服务器上了,但你发现在Tomcat7服务器下的webapps文件夹下并没有找到项目文件。
因为MyEclipse在运行项目时是不会把项目考到webapps下的,他会在令一个地方建立一个虚拟目录,它就是存放你的项目的地址 。
该路径的寻找在下图你选中所部署的服务器
这里写图片描述
该地址就是你文件上传的位置,打开,你就发现你上传的文件就在该文件夹上了

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值