1. struts2中的文件上传
第一步:在WEB=INF/lib下加入commons-fileupload-1.2.1.jar , commons-io-1.3.2.jar。
第二步:把form表单的enctype属性设置为"multipart/form-data",如
第一步:在WEB=INF/lib下加入commons-fileupload-1.2.1.jar , commons-io-1.3.2.jar。
第二步:把form表单的enctype属性设置为"multipart/form-data",如
Java代码
1. <form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">
2. 文件:<input type="file" name="image">
3. <input type="submit" value="上传"/>
4. </form>
5. //${tPath}:获取服务器根路径
<form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">
文件:<input type="file" name="image">
<input type="submit" value="上传"/>
</form>
//${tPath}:获取服务器根路径
第三步:在action中添加一下属性,
Java代码
1. public class HelloWorldAction {
2. private File image; //与jsp表单中的名称对应
3. private String imageFileName; //FileName为固定格式
4. private String imageContentType ;//ContentType为固定格式
5.
6. public String getImageContentType() {
7. return imageContentType;
8. }
9. public void setImageContentType(String imageContentType) {
10. this.imageContentType = imageContentType;
11. }
12. public String getImageFileName() {
13. return imageFileName;
14. }
15. public void setImageFileName(String imageFileName) {
16. this.imageFileName = imageFileName;
17. }
18. public File getImage() {
19. return image;
20. }
21. public void setImage(File image) {
22. this.image = image;
23. }
24. public String execute() throws Exception{
25. System.out.println("imageFileName = "+imageFileName);
26. System.out.println("imageContentType = "+imageContentType);
27. //获取服务器的根路径realpath
28. String realpath =&ServletContext().getRealPath("/images");
29. System.out.println(realpath);
30. if(image!=null){
31. File savefile = new File(new File(realpath), imageFileName);
32. if(!ParentFile().exists())&ParentFile().mkdirs();
33. pyFile(image, savefile);
34. Context().put("message", "上传成功");
35. }else{
36. Context().put("message", "上传失败");
37. }
38. getsavefilename return "success";
39. }
40. }
public class HelloWorldAction {
private File image; //与jsp表单中的名称对应
private String imageFileName; //FileName为固定格式
private String imageContentType ;//ContentType为固定格式
public String getImageContentType() {
return imageContentType;
}
public void setImageContentType(String imageContentType) {
this.imageContentType = imageContentType;
}
public String getImageFileName() {
return imageFileName;
}
public void setImageFileName(String imageFileName) {
this.imageFileName = imageFileName;
}
public File getImage() {
return image;
}
public void setImage(File image) {
this.image = image;
}
public String execute() throws Exception{
System.out.println("imageFileName = "+imageFileName);
System.out.println("imageContentType = "+imageContentType);
//获取服务器的根路径realpath
String realpath = ServletContext().getRealPath("/images");
System.out.println(realpath);
if(image!=null){
File savefile = new File(new File(realpath), imageFileName);
if(!ParentFile().exists()) ParentFile().mkdirs();
pyFile(image, savefile);
Context().put("message", "上传成功");
}else{
Context().put("message", "上传失败");
}
return "success";
}
}
此外,可以在l中配置上传文件的大小
<constant name="struts.multipart.maxSize" value="10701096"/> //最大上传配置成10M
默认的上传大小为2M
思维拓展:如果要上传的文件非常大,如上传的是电影,好几百M ,用web上传一般是不可能难上传成功的,这时候要安装一个插件,类似于应用程序
socket ,通过网络通讯上传。
2 . 多文件上传
在上面的基础上略加改动
1.jsp表单
2 . 多文件上传
在上面的基础上略加改动
1.jsp表单
Java代码
1. <form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">
2. 文件1:<input type="file" name="image"><br/>
3. 文件2:<input type="file" name="image"><br/>
4. 文件3:<input type="file" name="image"><br/>
5. <input type="submit" value="上传"/>
6. </form>
<form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论