Ext 结合Cos 实现上传

本文介绍了解决在Internet Explorer浏览器中无法获取到action.result.success的问题,通过调整Java端响应的内容从write改为print,并修改消息字段名称,成功实现了文件上传后的状态反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在IE中,不能获得到action.result.success ,这个问题困扰了我5个小时. 不过还是再各位前辈的文章中找到了解决的方法
原来是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:'成功'}");

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值