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