控制器:
$reinfo = "fail";
$filename="";
//重要說明:
//使用uploadify 上傳時,每次這個sessionID都會改變,
//改變之後出現的不利影響就是無法再擷取sessionID線下的其它session值,比如 Yii::app()->session['ik'] 值就變了。
//但是這個地方值不能變,仍要用 Yii::app()->session['ik'] 的值來作驗證,
//因此一定要使用這句 session_id($pse); 作用是將sessionID改回來,與原來的sessionID一致,以便順利擷取值
//有了該值之後,原來的 sessionID 和 上傳之後的 sessionID 是一致的。
//echo Yii::app()->session->sessionID; 這是Yii擷取sessionID的方法
//2014-10-14 13:04 W.one
$pse=Yii::app()->request->getParam('PHPSESSION');
session_id($pse);
/*
* 如果不使用上句的話,Yii::app()->session['ik']==$who 是不可能相等的,因為sessionID變了
*/
$who=(int)Yii::app()->request->getParam('who');
$sjm=Yii::app()->request->getParam('sjm');
$zlsjm = Yii::app()->request->getParam("zlsjm");
//$xceikey=(int)Yii::app()->request->getParam('xceikey');//擷取的相簿ikey,預設為請選擇,值為空白,一定要選擇一個值
if ($who==Yii::app()->session['ik']){
$sjz=time();
$tempFile = $_FILES['Filedata'];
$checkType= pathinfo($tempFile["name"],PATHINFO_EXTENSION);
if ($checkType != "notimg"){
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/oa/upload/file/';
$scfile= date("Y").date("m").date("d").date("His")."_".$who."_".md5(microtime()).".".$checkType;
$targetFile = str_replace('//','/',$targetPath) . $scfile;
if (move_uploaded_file($tempFile['tmp_name'],$targetFile)){
$relativeurl="./upload/file/".$scfile;
//$relativeurl=$tempFile["name"];
$zlfj = new Zlfj();
$zlfj->fj_zlsjm = $zlsjm;
$zlfj->fj_uikey = Yii::app()->session["ik"];
$zlfj->fj_path = "./upload/file/".$scfile;
$zlfj->fj_time = time();
$zlfj->fj_name = $tempFile["name"];
if($zlfj->validate()&&$zlfj->save()){
$reinfo = $relativeurl;
$filename=$tempFile["name"];
}else{
@unlink($targetFile);
}
}
}
}
echo CJSON::encode(array("info"=>"$reinfo","name"=>$filename));
view:
以上就介紹了Yii Uploadify批量上傳,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。