论坛首页 Java企业应用论坛

Struts 2 文件上传

浏览 1945 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-31  
FileUploadAction
   public class FileUploadAction extends ActionSupport  {
     private static final long serialVersionUID = 572146812454l ;
     private static final int BUFFER_SIZE = 16 * 1024 * 1024;
    
     private File myFile;
     private String contentType;
     private String fileName;
     private String imageFileName;
     private String caption;
    
     public void setMyFileContentType(String contentType)  {
         this .contentType = contentType;
    } 
    
     public void setMyFileFileName(String fileName)  {
         this .fileName = fileName;
    } 
        
     public void setMyFile(File myFile)  {
         this .myFile = myFile;
    } 
    
     public String getImageFileName()  {
         return imageFileName;
    } 
    
     public String getCaption()  {
         return caption;
    } 
 
      public void setCaption(String caption)  {
         this .caption = caption;
    } 
    
     private static void copy(File src, File dst)  {
         try  {
            InputStream in = null ;
            OutputStream out = null ;
             try  {                
                in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
                out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
                 byte [] buffer = new byte [BUFFER_SIZE];
                 while (in.read(buffer) > 0 )  {
                    out.write(buffer);
                } 
             } finally  {
                 if ( null != in)  {
                    in.close();
                } 
                  if ( null != out)  {
                    out.close();
                } 
            } 
         } catch (Exception e)  {
            e.printStackTrace();
        } 
    } 
    
     private static String getExtention(String fileName)  {
         int pos = fileName.lastIndexOf( "." );
         return fileName.substring(pos);
    } 
 
    @Override
     public String execute()      {        
        if(fileName != null){
        imageFileName = new Date().getTime() + getExtention(fileName);
        System.out.println(getExtention(fileName)+"==="+new Date());
        File imageFile = new File(ServletActionContext.getServletContext().getRealPath( "/upload" ) + "/" + imageFileName);
        copy(myFile, imageFile);
        return SUCCESS;
        }
        return INPUT;
    } 
    
} 


struts.xml

      <constant name="struts.custom.i18n.resources"    value="message"></constant>
    <constant name="struts.i18n.encoding" value="GBK"/>


<action name="fileUpload" class="bill.action.FileUploadAction">
         <interceptor-ref name="fileUpload">
            <param name="maximumSize">10240990</param>
            <param name="allowedTypes">application/pdf</param>
         </interceptor-ref>
         <interceptor-ref name="defaultStack"/>
          <result name="input">FileUpload.jsp</result>
          <result name ="success" >ShowUpload.jsp </result > 
       </action>

<param name="maximumSize">10240990</param>
<param name="allowedTypes">application/pdf</param>
其allowedTypes见Tomcat Home/config/web.xml可以添加你想要的类型

message.properties
   #xwork.default.invalid.fieldvalue={0} error
struts.messages.error.content.type.not.allowed=\u4e0a\u4f20\u6587\u4ef6\u7c7b\u578b\u4e0d\u5141\u8bb8\uff0c\u8bf7\u91cd\u8bd5\uff01
struts.messages.error.file.too.large=\u4e0a\u4f20\u6587\u4ef6\u8fc7\u5927\uff0c\u8bf7\u91cd\u8bd5\uff01
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics