struts1.2实现图片上传

Action:

public class FileUploadAction extends Action {

    /*
     * Generated Methods
     */

    /**
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
       
            FileUploadForm fileUploadForm = (FileUploadForm) form;// TODO Auto-generated method stub
                // 取得文件对象
            FormFile file = fileUploadForm.getFile();
               //通过时间和file的文件后缀,拼写出文件名
               java.util.Date date= new java.util.Date();
              
            String fileName =date.getTime()          
              + file.getFileName().substring( file.getFileName().lastIndexOf("."));
               // 取得绝对路径
              
            System.out.println(fileName);
              
            String pathName = this.getServlet().getServletContext()
                 .getRealPath("/")
                 + "/upload/" + fileName;
               //将拼写好的文件名保存到对象中
            System.out.println(pathName);
              
              
            try {
                 // 定义输出流
                 FileOutputStream os = new FileOutputStream(new File(pathName));
                 // 开始写文件
                 os.write(file.getFileData());
                 // 关闭流
                 os.close();
                
                 return mapping.findForward("suc");
                
                } catch (FileNotFoundException e1) {
                 // TODO Auto-generated catch block
                 e1.printStackTrace();
                 return mapping.findForward("fal");
                
                } catch (Exception ex) {
                 // TODO Auto-generated catch block
                 ex.printStackTrace();
                 return mapping.findForward("fal");
                }
        }

}

 

Form:

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.j2ee.onlineAuction.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import org.apache.struts.upload.FormFile;

/**
 * MyEclipse Struts
 * Creation date: 06-12-2011
 *
 * XDoclet definition:
 * @struts.form name="fileUploadForm"
 */
public class FileUploadForm extends ActionForm {
    /*
     * Generated fields
     */

    /** file property */
    private FormFile file;

    /*
     * Generated Methods
     */

    /**
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
            HttpServletRequest request) {
        // TODO Auto-generated method stub
        return null;
    }

    /**
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        // TODO Auto-generated method stub
    }

    /**
     * Returns the file.
     * @return FormFile
     */
    public FormFile getFile() {
        return file;
    }

    /**
     * Set the file.
     * @param file The file to set
     */
    public void setFile(FormFile file) {
        this.file = file;
    }

}

JSP:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html>
    <head>
        <title>JSP for FileUploadForm form</title>
    </head>
    <body>
        <html:form action="/fileUpload" enctype="multipart/form-data">
            file : <html:file property="file"/><html:errors property="file"/><br/>
            <html:submit/><html:cancel/>
        </html:form>
    </body>
</html>


你可能感兴趣的:(struts1.2实现图片上传)