2012-02-19 158 views
0

我有一个上传图像到一个文件夹,而不是将其保存为一个blob脚本..PHP jQuery的图片上传

<?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的

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

+0

你的意思是使用相同的文件名上传或在同一图像上载有不同的文件名? – FluffyKitten 2012-02-19 16:31:26

+0

要么首先在文件名上进行选择以查看它是否存在,要么只是将时间戳追加到文件名中,以便所有内容都是唯一的。 – j08691 2012-02-19 16:33:04

+0

@to all:我试图捕获的是具有相同文件名的文件。如何在php中完成? – 2012-02-20 00:08:52

回答

0

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

上传后 - 检查新图像校验和/散列并将其与数据库中存储的相比较。

使用md5_file函数。

$md5hash = md5_file(string $filename); 

这里比较:http://www.php.net/manual/en/function.md5-file.php

+0

我怎么能使用MD5?你能给我一个基础的例子吗?谢谢 – 2012-02-20 00:09:41

+0

我编辑了我的答案,现在你有例子。 – Kamil 2012-02-20 06:32:08