2012-02-19 95 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