问题:post方式下,设置formData在后台取不到参数php
Uploadify与jFinal都使用了最新版本html
在使用Uploadify时,我尝试经过设置formData参数向后台传递一个存储上传文件的文件夹名称html5
代码以下:安全
$(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”,获取不到。post
网上有人说,先使用getFile获取文件而后,就能获取到参数了,一试,果真可行。url
可是有的时候须要先获取folder参数,咱们可使用get方式提交,这个时候,实际上是把参数做为queryString拼接到请求的url后面,也就是使用了url传参方式。spa
另外发现,若是在url后面传递一个其余的url参数,仍然使用post提交,则后台能正常获取数据。code
综合来讲,这应该是jfinal在处理传参时的一个小bug,并且html5有FormData API,不知道jFinal是否能正常取值?orm
但愿将来的JFinal能考虑修复吧。htm