Ext+struts2一个简单的文件上传要注意的地方

今天天做一用做了个文件上传,上网找了很多例子,因为我是做项目,不能全抄网上的例子,做了多少尝例都未能成功把文件上传到服务器上。最后还是解决了,因原只是我犯了个低级错误,在Action里,定义的文件没写geter  和seter。

 

 

如下:

 页面主要代码:

 

 

var uploadFileForm=new Ext.form.formPanel(

             title:'文件上传',

             layout:'form',

             fileUpload:true,               //这里要注意

             items:[{

                        xtype:'textfield',

                        name:'uploadFile', //这人要和Action类里的名字一样

                        inputType:'file'    //注意

                        }]

             buttons:[{

                             text:'上传',

                             handler:function(){

                             uploadFileForm.getForm().submit(

                                                         url:'upload.action',

                                                         method:'POST',

                                                         success:function(){},

                                                         failure:function(){}

                                                         );

                             }

                         }]

 

);

 

 

 

upload.java

 

 

 

public class upload

{

 

   private File uploadFile;    //这个文件要和页面那个FORM中的textfield的name相同,STRUTS就

                                          //会把上传的文件SET到uploadFile里,当然,不要忘记写

                                         //uploadFile的geter 和seter,我就是忘了写这个就折腾了半天,如下:

   public File getUploadFile()

  {

        return  uploadFile;

 

   }

  public void setUploadFile(File uploadFile)

  {

       this.uploadFile=uploadFile;

   }

 

 

 

 

  public yourMethod(){

 

               //你对uploadFile处理的代码写在这里

 

}

 

 

 

}

 

 

 

STRUTS.XML的配置就如一般的配置一样就行。

 

至于 response.getWriter().print("{success:true}");print到页面气错,得到的是“<pre>{success:true}<pre>”,这是contentType的原因,只要

 

response.setContentType("text/html");

response.getWriter().print("{success:true}");

原因就不细说了,有兴趣可以去研究下HTML,这方面我不太了解。

好了,希望能帮到一些朋友吧。


版权声明:本文为kelvin1985原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。