## 1.不能傳遞session與cookie等值。
可以用formData項直接將參數傳遞過去。
上傳模板的代碼
~~~
$("#user-pic").uploadify({
'queueSizeLimit' : 1,
'removeTimeout' : 0.5,
'preventCaching' : true,
'multi' : false,
'swf' : '!-PUBLIC-!/uploadify-v3.1/uploadify.swf',
'uploader' : '{:U("Public/uploadImg")}',
'buttonText' : '上傳頭像',
'width' : '200',
'height' : '200',
'fileTypeExts' : '*.jpg; *.png; *.gif;',
'formData' : { 'authId' : '{$Think.session.authId}' },
})
~~~
復制代碼
重點是formData,用ThinkPHP常量把Session值取出來,命名為authId 以formData作為一個參數,傳過去。。。
## 2.數組的傳遞。
若session是一個數組可能用以下方法直接傳過去
`'formData' : <php> echo json_encode(session('user_auth'),JSON_UNESCAPED_UNICODE)</php> ,`
## 3.關于jquery uploadify處理后臺的問題
如何判斷文件的存在?在這里璞玉為大家簡單的分析一下uploadify后臺處理程序的寫法。
首先使用:
001 `if (!empty($_FILES))`
來判斷是否有文件上次。如果有的話,接著去做接下來的事情,比如把上傳的文件從臨時文件移動到系統生成的保存文件夾中。如何判斷文件的存在?這其實很簡單。如果說您把上傳的所以的文件都放在了一個大的目錄里面(這點不可取,既不安全,又不利于查找。在linux系統下面,文件夾里面的文件超過1000個以后就明顯的慢了很多。所以還是分開存儲)。
如下:
002`$_FILES['Filedata']['name'];`
根據上面那句話就能得出文件的名字。然后用file_exists去判斷是否存在即可、
不過在這里重點說下uploadify后臺的處理寫法.
首先用戶點擊上傳之后,圖片就會批量的上傳到后臺。后臺就要一個個去依次處理。然后把結果跟狀態返回給前臺客戶看到。
以《jquery.uploadify動態傳遞表單元素》為例,把后臺處理程序貼出來,給大伙學習下:
①:把上次完成的圖片文件名返回給前臺
②:把上次完成的圖片裁剪縮略圖
~~~
//首先判斷文件是否為空
if (!empty($_FILES)) {
//把上次完成的圖片文件名返回給前臺
//'name' 就是之前寫 《jquery.uploadify動態傳遞表單元素》里面動態附加值
echo $_FILES['Filedata']['name'];
$tmpDir = $_POST['note'];
$fileName = iconv("UTF-8","GB2312",$_FILES["Filedata"]["name"]);
//echo $fileName;
$file = $_FILES["Filedata"]["tmp_name"];
//fwrite($f,$tmpDir);
//復制原圖
$path = "uptemp/".$tmpDir."_org/";
//echo $path;
if(!is_dir($path))
mkdir($path);
if (copy($file, $path . $fileName)){
$_ft =$file;
}else{
$_ft ="no";
}
//生成縮略圖
$fileName = str_replace(" ","\ ",$fileName);
//$fileName = iconv("UTF-8","GB2312",$_GET['newname']);
$pathTmb = "uptemp/".$tmpDir."/";
$extPos = strrpos($fileName,".");
$secfile= substr($fileName,0,$extPos);
$tmbName = $secfile.".jpg";
if(!is_dir($pathTmb))
mkdir($pathTmb);
//echo $pathTmb."<br>";
if(!file_exists($pathTmb.$tmbName)){
//IMAGEMAGICKDIR這個就要根據您自己裝的imagemagick目錄來寫了
$cmd = IMAGEMAGICKDIR."/convert -resize 110x110 ". $path.$fileName." ".$pathTmb.$tmbName;
//echo $cmd;
system( $cmd );
}
$tmbName = str_replace("\ "," ",$tmbName);
readfile($pathTmb.$tmbName);
exit;
//轉碼
$fileName = iconv("GB2312","UTF-8",$secfile);
}
// 獲取文件擴展名
// @param $fileName 上傳文件的原文件名
function getExt($fileName){
$ext = explode(".", $fileName);
$ext = $ext[count($ext) - 1];
return strtolower($ext);
}
~~~