extjs中submit提交后不进入success也不进入failure 解决方法

首先说明是后台返回的json返回值格式不对

要执行successfailure,需在返回的json中有如下字段 :

执行success里面的操作
{success:true}

执行failure里面的操作
{success:false}

##首先要确定你Extjs上传文件代码正确性(提供部分代码)

buttons : [ {
			text : '上传文件',
			handler : function() {
				var form = this.up('form').getForm();
				var fileName = Ext.getCmp("fileid").getValue();
				fileName = fileName.split('.');
				fileName = fileName[fileName.length - 1];
				if (fileName != "doc" && fileName != "docx") {
					Ext.Msg.alert("系统提示", "必须选择Microsoft Office Word 文档!");
					return false;
				}
				if (form.isValid()) {
					form.submit({
						method : 'post',
						url : 'announce/upFile.do',
						waitMsg : '文件上传中,请稍等...',
						success : function(fp, o) {
							Ext.Msg.alert('成功', '上传成功!');
						}
					});
				}
			}
		} ]

##后台Java返回代码
特别提醒:response.getWriter().print("{success:true}");
返回字符串的格式为:{success:true}或{success:false}

/* 附件上传 */
	@RequestMapping("/upFile")
	public @ResponseBody void upFile(HttpServletRequest request, HttpServletResponse response,
			@RequestParam("file") CommonsMultipartFile file) throws IOException {
		/* 获取项目工程的实际目录,并且在该真实路径下创建一个uploadFiles目录 */
		String filePath = request.getSession().getServletContext().getRealPath("/uploadFiles/");
		/* 获取文件名 */
		String fileName = file.getOriginalFilename();
		/* 获取文件的后缀,通过后缀可分辨文件的类型 */
		String fileType = fileName.split("[.]")[1];
		/* 为了避免文件名重复,在文件名前加UUID */
		String uuid = UUID.randomUUID().toString().replace("-", "").substring(2, 10);
		String uuidFileName = uuid + fileName;
		/* 文件上传 */
		FileUtil.upFile(file.getInputStream(), uuidFileName, filePath);
		response.getWriter().print("{success:true}");
	}

项目推荐



DC3是基于Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案。

ExtJS 中,可以使用组件 `Ext.form.Panel` `Ext.form.field.File` 来实现文件上传功能,而需要使用表单提交。 首先,需要创建一个 `Ext.form.Panel` 组件,并设置 `enctype` 属性为 `multipart/form-data`,表示上传文件的数据类型为二进制数据。然后,在该组件中添加一个 `Ext.form.field.File` 组件,用于选择要上传的文件。 在提交表单时,可以通过 `Ext.Ajax.request` 方法发送请求,将上传的文件作为请求参数发送到服务器端。具体实现代码如下: ```javascript Ext.create('Ext.form.Panel', { title: '文件上传示例', width: 400, bodyPadding: 10, renderTo: Ext.getBody(), items: [{ xtype: 'filefield', name: 'file', fieldLabel: '选择文件', labelWidth: 100, msgTarget: 'side', allowBlank: false, anchor: '100%', buttonText: '浏览...' }], buttons: [{ text: '上传', handler: function() { var form = this.up('form').getForm(); if (form.isValid()) { form.submit({ url: 'upload.php', waitMsg: '正在上传文件,请稍候...', success: function(form, action) { Ext.Msg.alert('提示', '文件上传成功!'); }, failure: function(form, action) { Ext.Msg.alert('错误', '文件上传失败!'); } }); } } }] }); ``` 在上述代码中,`Ext.form.Panel` 组件中添加了一个 `Ext.form.field.File` 组件,其 `name` 属性设置为 `file`,表示上传的文件对应的参数名为 `file`。在点击上传按钮时,通过 `Ext.form.Panel` 组件的 `getForm` 方法获取到表单对象,然后通过 `isValid` 方法检查表单是否合法。如果表单合法,则通过 `submit` 方法提交表单数据,其中 `url` 属性设置为上传文件的服务器地址,`waitMsg` 属性设置为上传文件时显示的等待信息。在上传成功或失败后,分别通过 `success` `failure` 回调函数进行处理。 在服务器端,可以使用 PHP 等脚本语言处理上传的文件。例如,以下是一个简单的 PHP 代码示例,用于接收上传的文件并保存到服务器上: ```php <?php $targetDir = "uploads/"; $targetFile = $targetDir . basename($_FILES["file"]["name"]); if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) { echo "文件上传成功!"; } else { echo "文件上传失败!"; } ?> ``` 在上述 PHP 代码中,`$_FILES["file"]` 表示上传的文件对象,可以通过 `tmp_name` 属性获取上传文件的临时文件名,通过 `name` 属性获取上传文件的原始文件名。`move_uploaded_file` 函数用于将上传的文件移动到指定目录中。当文件上传成功时,打印出文件上传成功的提示信息,否则打印出文件上传失败的提示信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值