struts框架上传文件,需要的两个包:commons-fileupload-1.3.2.jar 、commons-io-2.2.jar
上传文件,界面需要一个input标签 form表单中除了action method 之外,还需要一个 enctype="multipart/form-data" 属性 例如:
另外需要一个Action ,
三个成员变量: 1.File类型 2.String fileFileName属性名 3.String fileContentType属性名
package com.maya.controller;import java.io.File;import java.io.IOException;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Random;import org.apache.commons.io.FileUtils;import com.opensymphony.xwork2.ActionSupport;public class FileAction extends ActionSupport { public String input(){ return SUCCESS; } public String select() throws IOException{ Random rand=new Random(); int n=rand.nextInt(9999); DecimalFormat df=new DecimalFormat("0000"); String sss=df.format(n); //格式化随机数,如果不够四位数,用0补齐 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); //格式化时间 String str=sdf.format(Calendar.getInstance().getTime()); File destFile=new File("d:\\"+name+"_"+str+"_"+sss+"_"+fileFileName); FileUtils.copyFile(file, destFile); return SUCCESS; } private File file; //文件上传需要定义一个file 类型的变量 private String name; private String fileFileName; //上传时,文件的名称,遵循约定,用这个名称,上传文件时自动将文件名赋值到里面 file.getName()取到的值不是原文件的名 private String fileContentType; //文件类型 同上,约定为这个名称传文件时自动将文件类型赋值到里面(常用作限制文件上传格式) public String getFileContentType() { return fileContentType; } public void setFileContentType(String fileContentType) { this.fileContentType = fileContentType; } public String getFileFileName() { return fileFileName; } public void setFileFileName(String fileFileName) { this.fileFileName = fileFileName; } public File getFile() { return file; } public void setFile(File file) { this.file = file; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
上传完成,则对应的位置会有相应的文件
如果需要实现多文件上传,则File 换成 File数组即可,
public String upload() throws IOException{ for(int i=0;i