struts2实现单文件上传
2017-10-12 18:51
381 查看
新建web项目,导入Struts2,配置好所有东西就可以开始实现了
项目目录:
先实现上传的这个界面,很简单就是一个表单
index.jsp
注意:在进行文件上传时,表单提交方式是post的方式,因为文件上传时二进制文件可能会很大,enctype属性是multipart/form-data,不然就会以二进制文本上传到服务器端
2. 上传成功页面
success.jsp
上传失败页面
struts.xml
FileUpload.java
运行:
如果不选中上传的文件,直接提交,显示上传失败
此时,一定很纳闷文件上传到哪里去了,我的web项目是在Tomcat7服务器上配置的,所以文件上传到Tomcat7服务器上了,但你发现在Tomcat7服务器下的webapps文件夹下并没有找到项目文件。
因为MyEclipse在运行项目时是不会把项目考到webapps下的,他会在令一个地方建立一个虚拟目录,它就是存放你的项目的地址 。
该路径的寻找在下图你选中所部署的服务器
该地址就是你文件上传的位置,打开,你就发现你上传的文件就在该文件夹上了
项目目录:
先实现上传的这个界面,很简单就是一个表单
index.jsp
<body> <form action="uploads" method="post" enctype="multipart/form-data" > 上传文件:<input type="file" name="file1"><br/> <input type="submit" value="提交"> </body>
注意:在进行文件上传时,表单提交方式是post的方式,因为文件上传时二进制文件可能会很大,enctype属性是multipart/form-data,不然就会以二进制文本上传到服务器端
2. 上传成功页面
success.jsp
<body> 上传成功!<br/> </body>
上传失败页面
<body> 上传失败!<br/> </body>
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>
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下的,他会在令一个地方建立一个虚拟目录,它就是存放你的项目的地址 。
该路径的寻找在下图你选中所部署的服务器
该地址就是你文件上传的位置,打开,你就发现你上传的文件就在该文件夹上了
相关文章推荐
- Struts2实现文件上传和下载
- Struts2实现图片上传功能 (单个图片文件)
- 在Struts2中实现文件上传(二)
- struts2 利用fileupload实现文件上传
- Struts2实现文件上传和下载
- struts2实现文件上传进度条(前端JS+Java)(自我整理)
- Struts2实现文件上传和下载
- struts2实现简单文件上传
- Struts2中使用Common-FileUpload实现文件上传
- Struts2实现文件上传(默认拦截器篇)
- Struts2文件上传之Servlet依赖fileupload组件实现
- struts2中上传文件的实现
- struts2 实现文件上传与下载
- Struts2实现文件上传(一)
- Struts2和common的fileupload实现文件上传并显示实时进度
- struts2实现文件上传、多文件上传和文件下载
- 框架之struts2实现简易学生管理系统(struts2文件上传、分层)
- Struts2实现文件上传下载笔记
- Struts2中使用Common-FileUpload实现文件上传(二)
- Java程序员从笨鸟到菜鸟之(七十一)细谈struts2(十三)struts2实现文件上传和下载详解