Extjs文件上传(JSP处理)的Demo代码

不说废话,直接上代码。一个中文乱码搞了我好久时间。后来发现自己是画蛇添足了。

要注意jsp与form的交互,与我以前的ajax的交互方式不太一样。


test.html

var form = new Ext.form.FormPanel({

labelAlign: 'right',
title: 'form',
labelWidth: 50,
buttonAlign: 'center',
frame:true,
fileUpload: true,
url: 'test.jsp',
width: 280,

items: [{
xtype: 'textfield',
fieldLabel: '文本框',
name: 'file',
inputType: 'file'
}],
buttons: [{
text: '提交',
handler: function() {
form.getForm().submit({
success: function(form,action){
Ext.Msg.alert('信息', action.result.msg);
},
failure: function(){
Ext.Msg.alert('错误', '失败');
}
});
}
}]
});
form.render("form");


test.jsp


 /*加这两行会乱码
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    */
    
FileItemFactory factory = new DiskFileItemFactory(); 
ServletFileUpload fileload = new ServletFileUpload(factory);
fileload.setSizeMax(4194304);


    //开始读取上传信息
  /*
  J2SE 提供的最后一个批注是 @SuppressWarnings。
  该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
  */
    @SuppressWarnings("unchecked") 


    List<FileItem> fileItems = (List<FileItem>) fileload.parseRequest(request);
    Iterator<FileItem> iter = fileItems.iterator(); // 依次处理每个上传的文件


    while (iter.hasNext()) {
        FileItem item = (FileItem)iter.next();// 忽略其他不是文件域的所有表单信息
        if (!item.isFormField()) {
            String name = item.getName();//获取上传文件名,包括路径
            System.out.println(name);
if(name != null){
File filetoserver = new File("D:\\",name);
item.write(filetoserver);
System.out.println("文件:" + name + "上传成功,大小是" + item.getSize());
}
        }
    }
    response.getWriter().print("{success:true,msg:'上传成功'}");

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭