問題: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