struts2上传多文件

public class UploadAction {
 
    private static final long serialVersionUID = 7738910297605127355L;
    //private News news; //注入实体对象
    private static final int BUFFER_SIZE = 16 * 1024;// 缓冲-上传字节数组
    private String upfileName;
 
    private List<File> uploads = new ArrayList<File>();
    private List<String> uploadFileNames = new ArrayList<String>();
    private List<String> uploadContentTypes = new ArrayList<String>();
 
    public String add() {
        int size = uploadContentTypes.size();
        if (size > 0) {
            for (int i = 0; i < size; i++) {
                String contentype = uploadContentTypes.get(i);
                if (contentype.indexOf("image") > -1) {
                    File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/upload/images")+ "/" + uploadFileNames.get(i));
                    UploadUtil.copy(uploads.get(i), imageFile, BUFFER_SIZE);
                    String picturePath = "/upload/images" + "/" + uploadFileNames.get(i);
                    String picName = uploadFileNames.get(i);
                     
                    // 设置实体对象中的图片地址
                    // news.setPicturePath(picturePath);
                    // news.setPictureName(uploadFileNames.get(0));
 
                    System.out.println("图片地址:" + picturePath);
                    System.out.println("图片名称:" + picName);
                }
                /*否则就是上传附件,不是图片
                else {
                    File fujianFile = new File(ServletActionContext.getServletContext().getRealPath("/upload")+ "/" + uploadFileNames.get(1));
                    UploadUtil.copy(uploads.get(1), fujianFile, BUFFER_SIZE);
                    // 设置实体对象中的图片地址
                    // news.setUpfileName(uploadFileNames.get(1));
                    String picturePath = "/upload/images" + "/"
                            + uploadFileNames.get(0);
                    String picName = uploadFileNames.get(0);
                    System.out.println("图片地址:" + picturePath);
                    System.out.println("图片名称:" + picName);
                }
                */
            }
        }
        return "upload";
    }
 
    public String getUpfileName() {
        return upfileName;
    }
 
    public void setUpfileName(String upfileName) {
        this.upfileName = upfileName;
    }
 
    public List<File> getUpload() {
        return this.uploads;
    }
 
    public void setUpload(List<File> uploads) {
        this.uploads = uploads;
    }
 
    public List<String> getUploadFileName() {
        return this.uploadFileNames;
    }
 
    public void setUploadFileName(List<String> uploadFileNames) {
        this.uploadFileNames = uploadFileNames;
    }
 
    public List<String> getUploadContentType() {
        return this.uploadContentTypes;
    }
 
    public void setUploadContentType(List<String> contentTypes) {
        this.uploadContentTypes = contentTypes;
    }
 
}
 UploadUtil.java<br>-------------------/**
 * 上传文件,名称以日期命名
 *
 * @author Administrator
 */
public class UploadUtil {
    /**
     * 上传文件
     *
     * @param src
     *            源文件
     * @param dst
     *            目标文件
     * @param BUFFER_SIZE
     *            缓冲大小
     */
    public static void copy(File src, File dst, final int BUFFER_SIZE) {
        try {
            InputStream in = null;
            OutputStream out = null;
            try {
                in = new BufferedInputStream(new FileInputStream(src));
                dst = rename(dst);
                out = new BufferedOutputStream(new FileOutputStream(dst));
                int word = 0;
                while ((word = in.read()) != -1) {
                    out.write(word);
                }
            } finally {
                if (null != in) {
                    in.close();
                }
                if (null != out) {
                    out.close();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    /**
     * 得到扩展名
     * @param fileName
     * @return
     */
    public static String getExt(String fileName) {
        int pos = fileName.lastIndexOf(".");
        return fileName.substring(pos);
    }
 
    /**
     * 更改上传文件名
     * @param file 文件对象
     * @return 更名后的文件对象
     */
    public static File rename(File file) {
        String fileName = "";// 文件名
        String extName = "";// 文件扩展名
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
        fileName = formatter.format(cal.getTime()) + (int) (Math.random() * 10);
        extName = getExt(file.getName());
        String newName = fileName + "." + extName;
        file = new File(file.getParent(), newName);
        return file;
    }
 
}
 upload.jsp<html>
  <body>
   <s:form method="post" action="jupload" enctype ="multipart/form-data">
    上传图片:<s:file name ="upload" theme="simple"/>
    <br/>
    上传附件:<s:file name ="upload" theme="simple"/>
    <br/>
    <s:submit theme="simple" value="提交"/>
  </s:form>
  </body>
</html>
<!-- 上传文件 cyjch -->
<action name="jupload"  method="add" class="upAction" >
    <result name="upload">upload.jsp</result>
</action>

  

  struts.xml

  

  

posted @   cyjch  阅读(318)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示