JQuery的Uploadify上传插件 后台php处理判断文件存在
关于jquery uploadify处理后台的问题。说如何判断文件的存在?在这里璞玉为大家简单的分析一下uploadify后台处理程序的写法。
首先使用:
if
(!
empty
(
$_FILES
))
来判断是否有文件上次。如果有的话,接着去做接下来的事情,比如把上传的文件从临时文件移动到系统生成的保存文件夹中。如何判断文件的存在?这其实很简单。如果说您把上传的所以的文件都放在了一个大的目录里面(这点不可取,既不安全,又不利于查找。在linux系统下面,文件夹里面的文件超过1000个以后就明显的慢了很多。所以还是分开存储)。
如下:
$_FILES
[
'Filedata'
][
'name'
];
根据上面那句话就能得出文件的名字。然后用file_exists去判断是否存在即可、
不过在这里重点说下uploadify后台的处理写法.
首先用户点击上传之后,图片就会批量的上传到后台。后台就要一个个去依次处理。然后把结果跟状态返回给前台客户看到。
下面就以璞玉之前写的《jquery.uploadify动态传递表单元素》为例,现在把后台处理程序贴出来,给大伙学习下:
/********
uploadify 后台处理程序
Date:2012-06-24 by: pooy
blog:www.pooy.net
①:把上次完成的图片文件名返回给前台
②:把上次完成的图片裁剪缩略图
*******/
//首先判断文件是否为空
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
);
}
原理都是把$_FILES 临时文件复制到本地目录进行存储,然后再使用IMAGEMAGICK裁剪什么的。
THE END