第一步:
在WEB-INF/lib下加入commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar(FileUtils工具类在这个jar文件中)
第二步:把form表的enctype设置为:“multipart/form-data”,如下:
<form action="addfile" enctype="multipart/form-data" method="post">
文件:<input type="file" name="image">
<input type="submit" value="上传">
</form>
第三步: 在Action类中添加以下属性,属性名称对应于表单中文件字段的名称:
public class HelloWorldAction {
private File image;
private String imageFileName; // 固定写法。前面为字段名称 后面为FileName
//文件类型是 imageContentType; 这里
public String execute() throws IOException
{
// images/
String realpath = ServletActionContext.getServletContext().getRealPath("/images"); //获得绝对路径
System.out.println(realpath);
if(image!=null)
{
File savefile = new File(new File(realpath), imageFileName);
if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();
FileUtils.copyFile(image, savefile);
ActionContext.getContext().put("message", "上传成功");
}
return "success";
}
这里省略了get和set方法
}
当上传文件大小超过限制时,我们可以在配置文件中修改常量来修改上传文件大小限制
当时通常大文件不是通过WEB来上传的,不稳定。 而是使用Socket来上传的。
多个文件上传 将image 改成 List或者数组 即可