我有一个脚本可以将图像上传到文件夹而不是将其保存为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文件...如果这种图像已经上传,如何错误陷阱?
答案 0 :(得分:0)
为图像二进制数据生成CRC校验和,MD5或其他哈希类型,并将该哈希值存储在数据库中。
上传后 - 检查新的图像校验和/哈希并将其与存储在数据库中的图像进行比较。
使用md5_file函数。
$md5hash = md5_file(string $filename);