在IE中,不能获得到action.result.success ,这个问题困扰了我5个小时. 不过还是再各位前辈的文章中找到了解决的方法
原来是Java端一直写的是response.getWriter().write("{success:true,message:'上传成功'}");
后来看了一个朋友的代码才发现应该是response.getWriter().print("{success:true,msg:'成功'}");
哎..真是不应该啊!
原来是Java端一直写的是response.getWriter().write("{success:true,message:'上传成功'}");
后来看了一个朋友的代码才发现应该是response.getWriter().print("{success:true,msg:'成功'}");
哎..真是不应该啊!
Ext.BLANK_IMAGE_URL = 'js/extjs/resources/images/default/s.gif';
Ext.onReady(function(){
var uploadform = new Ext.form.FormPanel({
buttonAlign : 'center',
labelAlign : 'right',
labelWidth : 55,
title : '文件上传',
frame : true,
fileUpload : true, // 关键地方
url : 'servlet/CosUploadServ',
method : 'POST',
width : 380,
items : [{
xtype : 'textfield',
fieldLabel : '文件路径',
name : 'file',
inputType : 'file' // 文件类型
}],
buttons : [{
text : '上传',
handler : function (){
uploadform.getForm().submit({
success :function(form , action)
{
if(action.result.success ==true)
{
Ext.Msg.alert("上传成功","文件上传成功");
}
else
{
Ext.Msg.alert("上传失败","文件上传失败");
}
},
failure : function(form, action) {
Ext.Msg.alert('上传失败', '上传文件失败!');
}
});
}
}]
});
uploadform.render(document.body);
});
package tt.account.serv;
import java.io.File;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.oreilly.servlet.MultipartRequest;
/**
* Created on 2008-7-14
* <p>Description: [描述该类概要功能介绍]</p>
*/
public class CosUploadServ extends HttpServlet
{
/**
* Constructor of the object.
*/
public CosUploadServ()
{
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//文件上传后,保存在c:\\upload
String saveDirectory = "c:\\upload";
//每个文件最大5m,最多3个文件,所以...
int maxPostSize = 3 * 5 * 1024 * 1024;
//response的编码为"gb2312",同时采用缺省的文件名冲突解决策略,实现上传
MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize, "gb2312");
//输出反馈信息
Enumeration files = multi.getFileNames();
while (files.hasMoreElements())
{
System.err.println("ccc");
String name = (String) files.nextElement();
File f = multi.getFile(name);
if (f != null)
{
String fileName = multi.getFilesystemName(name);
String lastFileName = saveDirectory + "\\" + fileName;
System.out.println("上传的文件:" + lastFileName);
}
}
//response.setContentType("application/json");
//response.getWriter().write("{success:true,message:'上传成功'}");
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("{success:true,msg:'成功'}");
}
}