php jquery图片上传

时间:2012-02-19 16:26:33

标签: php jquery

我有一个脚本可以将图像上传到文件夹而不是将其保存为blob ..

<?php
mysql_connect('localhost','root','')or die(mysql_error());
mysql_select_db('db_tourism')or die(mysql_error());
//$newname='baro.jpg';
//dir:[../../]
$uploaddir = '../../images/municipality/';
$cc=$uploaddir.$fileName;
$fileName = $_FILES['uploadfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$ext = end(explode('.', $fileName));
$newname=$fileName;//.'.'.$ext;

$file = $uploaddir .$newname; //basename($_FILES['uploadfile']['name']); 

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 

 // echo "<script>alert('success:$fileName');</script>"; 

mysql_query("INSERT INTO `_temp-image` ( `id` , `File_name` , `path` ) 
VALUES (
NULL , '$fileName', '$file'
);");

 echo "success";
} 
else {
    echo "error";
}
?>

这里是jquery

    var btnUpload=$('#uploada');
    //var btnUploadTxt=$('#uploada').attr('value');
    var status=$('#status');
    new AjaxUpload(btnUpload, {
        action: 'upload-file.php',
        name: 'uploadfile',
        onSubmit: function(file, ext){
             if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
                // extension is not allowed 
                btnUpload.val('Only JPG, PNG or GIF files are   allowed');
                return false;
            }
            btnUpload.val('Uploading...');
        },
        onComplete: function(file, response){
            //On completion clear the status
            btnUpload.val('Upload Picture');
            //Add uploaded file to list
            if(response==="success"){
                $('<li class="uplod" uid="_temp-image" title="click     to remove ['+file+']" id="'+file+'  "><span  id=" '+file+' " style="font-  family:calibri;font-size:10px;" >'+file+' [UPLOADED]</span></li>').appendTo('#uploaded');/  *.html('<img src="../uploaded_image/'+file+'" alt="" />'+file)*///.addClass('success');
            } else{
                $('<li></li>').appendTo('#uploaded').text(fi    le).addClass('error');
            }
        }
    });

它工作正常我可以添加和删除图片...但我的问题是处理DUPLICATE文件...如果这种图像已经上传,如何错误陷阱?

1 个答案:

答案 0 :(得分:0)

为图像二进制数据生成CRC校验和,MD5或其他哈希类型,并将该哈希值存储在数据库中。

上传后 - 检查新的图像校验和/哈希并将其与存储在数据库中的图像进行比较。

使用md5_file函数。

$md5hash = md5_file(string $filename);

以下是更多:http://www.php.net/manual/en/function.md5-file.php