今天天做一用做了个文件上传,上网找了很多例子,因为我是做项目,不能全抄网上的例子,做了多少尝例都未能成功把文件上传到服务器上。最后还是解决了,因原只是我犯了个低级错误,在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,这方面我不太了解。
好了,希望能帮到一些朋友吧。