关于Uplodify与Jfinal搭配的一些问题

问题:post方式下,设置formData在后台取不到参数

Uploadify与jFinal都使用了最新版本

在使用Uploadify时,我尝试通过设置formData参数向后台传递一个存储上传文件的文件夹名称

代码如下:

$(function() {
			$('#file_upload').uploadify({
				'swf' : '/js/Uploadify/uploadify.swf',
				'uploader' : '/system/file/image',
				'buttonText' : "选择图片",
				'method' : "post", //指定文件上传时上传控件的提交方法,post 或者get
				'multi' : 'false', //指定在选择上传文件时,是否允许同时选中多个,true(可以选中多个,默认值),false(只能选中一个)

				//指定是否允许文件加入上传队列后自动开始上传, true(允许自动上传,默认值),false(关闭自动上传)
				'auto' : true,

				//指定检查文件是否已经存在的action,action返回值:1(存在),0(不存在)
				// 'checkExisting': '/system/file/checkexists',

				//指定文件上传大小的限制,可以传入数字与字符串,传入数字时,默认单位是kb,传入字符串时,要求值与单位一起传入(B, KB, MB, or GB)
				//若无限制,可指定为0(默认值)
				'fileSizeLimit' : 0,

				//指定在服务端用于获取该上传文件对象的名称,在php中可用$_FILES['the_files']
				'fileObjName' : 'upfile',

				//指定在弹出选择文件的对话框时,在可选文件类型下拉框中的选定值,默认:“All Files” ,需与fileTypeExts联合使用
				'fileTypeDesc' : 'All Files',

				//允许上传的文件扩展名列表,多个扩展名用分号分隔,这是不安全的,客户端手动更改文件扩展名,即可绕过验证,服务端仍需验证
				'fileTypeExts' : '*.gif; *.jpg; *.png',

				//在初始化时指定上传时,传递到服务端的参数,这里指定的参数每次上传都会传入,
				// 若要动态指定传入参数,可以使用setting方法在onUploadStart事件中指定
				//服务端根据客户端采用get还是post请求方式,来使用相应方法获取数据
				'formData': {"folder": "images"}				
			});
		});

在后台的action中尝试 使用getPara("folder")来获取参数“folder”,获取不到。

网上有人说,先使用getFile获取文件然后,就能获取到参数了,一试,果然可行。

但是有的时候需要先获取folder参数,我们可以使用get方式提交,这个时候,其实是把参数作为queryString拼接到请求的action后面,也就是使用了url传参方式。

另外发现,如果在action后面传递一个其他的url参数,仍然使用post提交,则后台能正常获取数据。

综合来说,这应该是jfinal在处理传参时的一个小bug,而且html5有FormData API,不知道jFinal是否能正常取值?

希望未来的JFinal能考虑修复吧。

你可能感兴趣的:(关于Uplodify与Jfinal搭配的一些问题)