-
July 12th, 2022, 20:33
#1
عضو انجمن
شناسایی فایل های تکراری با هش فایل
درود و عرض ادب خدمت بازدیدکنندگان گرامی
تا حالا فکر کردین تلگرام و یا سایر شبکه های اجتماعی چطوری از آپلود فایل تکراری جلوگیری میکنند ؟
اول میان هش فایل رو میگیرن و تو دیتابیس بهمراه اسم ذخیره و فایل رو آپلود میکنند
بعد کاربر دوم اگه خواست همون فایل رو آپلود کنه سیستم
هش فایل رو تو دیتابیس جستجو میکنه و اگه وجود داشته باشه فایل رو تو سرور آپلود نمیکنه
فقط یه اینسرت میزنه تو دیتابیس و یه ای دی جدید میده به کاربر میگه بیا اینم فایلت آپلود شد.
به همین راحتی 
یه توضیح کوچوکو هم درمورد هش فایل
هش فایل داده های داخل فایل رو رمزنگاری میکنه و یه کد میده پس با تغییر نام یا تغییر پسوند فایل ، هش فایل تغییر نمیکنه
حالا من امروز یه کد نوشتم میتونه فایلهای تکراری هاست شما رو شناسایی و لیست کنه
شما هم میتونید از این کد تو آپلود سنتر یا هر جایی که دوست داشته باشید استفاده کنید
استفاده کنندگان محترم لطفا توجه داشته باشید این آموزش بصورت اختصاصی توسط بنده حقیر (امید آران)
کد نویسی شده و برای اولین بار در سطح نت بصورت رایگان منتشر میشه
پس خواهشا منبع آموزش رو در صورت انتشار قید کنید.
کد HTML:
منبع : <a target='_blank' href='https://omidtak.ir/post/33'>شناسایی فایل های تکراری با هش فایل</a>
اینم کد
کد PHP:
$sd=[];
$dir = dirname(__FILE__);
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),RecursiveIteratorIterator::LEAVES_ONLY);
foreach($files as $name=>$file)
{
if(!$file->isDir())
{
$filePath = $file->getRealPath();
$md5File = md5_file($filePath);
$sd[$md5File]['duplicate'][] = ['filePath'=>str_replace($dir,'',$filePath),'fileMTime'=>date('Y-m-d H:i:s', $file->getMTime())];
}
}
$sd = array_filter($sd, function($c){return count($c['duplicate'])>1;});
echo '<pre>';
print_r($sd);
/*
اینم نمونه خروجی
Array
(
[54ac52e4d89fc97a13b06b8e8655abc9] => Array
(
[duplicate] => Array
(
[0] => Array
(
[filePath] => \dashboard\docs\images\backup-restore-mysql\image10.png
[fileMTime] => 2018-05-10 16:48:51
)
[1] => Array
(
[filePath] => \dashboard\docs\images\backup-restore-mysql\image14.png
[fileMTime] => 2018-05-10 16:48:51
)
)
)
)
*/
ویرایش توسط omid1991 : July 12th, 2022 در ساعت 20:41
-
تعداد تشکر ها ازomid1991 به دلیل پست مفید
-
July 12th, 2022 20:33
# ADS
-
July 12th, 2022, 23:38
#2
پاسخ : شناسایی فایل های تکراری با هش فایل
این روش برای پیدا کردن سریع فایل های دقیقا مشابه خوبه، یک مشکلی که این روش داره،کوچک ترین تغییر توی فایل حتی تقییر یک بایت فایل هش رو تغییر میده و دقت اش رو میاره پایین، مشکل دومش هم اینکه این روش برای پیدا کردن عکس ، فیلم و صوت مشابه با فرمت یا سایز مختلف کاربردی نداره.
برای پیدا کردن عکس مشابه الگوریتم هایی مثل Average hashing یا Perceptual hashing دقت خوبی دارن.
دقیق ترین روش برای پیدا کردن های فایل های مشابه (روشی که شرکت هایی مثل گوگل و فیسبوک استفاده میکنن)، بخصوص برای عکس ، فیلم و صدا استفاده از مدل های یادگیری ماشینی و گرفتن یک مدل خروجی وکتور و محاسبه فاصله فایل های مختلف با همدیگه هست.
-
تعداد تشکر ها ازfirebox به دلیل پست مفید