ذخیره عکس در دیتا بیس

Masoud1365

مدیر انجمن
سلام
روند کلی کار برای ذخیره سازی عکس در دیتا بیس به چه صورتی هست ؟
در کل برای ذخیره سازی و نمایش عکس در دیتا بیس چیکار باید بکنیم ؟
یه سری مقالات فارسی و انگلیسی هم خوندم ولی بازم متوجه نشدم که چیکار کنم.

یه چیز دیگه ! اگر بخواهیم که عکس رو کسی مستقیم با دادن آدرس در url نتونه مشاهده کنه و فقط خودمون بتونیم در یک صفحه به اونها نمایش بدیم آیا میشه ؟ برای امنیتش میگم . کلا میخوام هیچ کس به غیر از کسانی که مجاز هستند به عکس ها دسترسی نداشته باشند به غیر از ذخیره در دیتابیس راه دیگه ای هم هست ؟ :-?

ممنون
 

I.NoBody

Active Member
در هر دو مورد قبلاً بحث هاي زيادي شده.
بهتره همه مباحث رو مطالعه كنيد تا به نتيجه خوبي برسيد.
مثلاً در مورد ذخيره عكس يا آدرس عكس در DB
يا استفاده از HotLink Protection
 

P.H.P

Member
ارسال به دیتابیس

PHP:
<?php
// Insert

$Picture = "image.gif";

$PSize = filesize($Picture);
$fc = fopen($Picture, "r");
$fr = fread($fc, $PSize);
$image = addslashes($fr);

mysql_query("INSERT INTO picimage (img) VALUES ('" . $image . "')");
?>
نمایش

PHP:
<?php
// Show image
$result = mysql_query("SELECT id FROM picimage where id ='4'");
$row = mysql_fetch_array($result);
?>

<img src="file.php?id=<?=$row["id"];?>">
لود کردن [file.php]

PHP:
<?php
// Load Image

$image = $_GET["id"];
$result = mysql_query("SELECT id,img FROM picimage WHERE id='" . $image . "'");
$row = mysql_fetch_array($result);

header("Content-type: image/gif");
echo $row["img"];
?>
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
به نظر شما برای امنیت عکس ها اونها رو در دیتا بیس ذخیره کنم یا راه دیگری هم هست . چون این عکس ها بسیار سری هستند و امنیت آنها بسیار بسیار مهم هست . ( یعنی اگر کسی به عکسها دسترسی پیداکنه دیگه ... تازه مربوط به وکلا هم هست دیگه زندان رو شاخشه :wink: )
 

sajadmaz

Member
بهترین راهش ذخیره توی دیتابیس هست و برای خوندنشم هرکسی با توجه به دسترسیش و سشن بتونه بخونه
 

foranyone

Well-Known Member
یه چیز دیگه ! اگر بخواهیم که عکس رو کسی مستقیم با دادن آدرس در url نتونه مشاهده کنه و فقط خودمون بتونیم در یک صفحه به اونها نمایش بدیم آیا میشه ؟

واقعا این کار شدنیه ؟ خیلی جالب میشه اگه داخا دیتابیس ذخیره نشه ولی اجازه دیدن به کسی با آدرس مستقیم داده نشه

به نظتون میشه مدام پرمیژن های فایل رو تغیر داد ؟
 

foranyone

Well-Known Member
کار این تابع چیه ؟

PHP:
$image = addslashes($fr);
راستی ذخیره عکس داخل دیتابیس باعث نمیشه دیتابیس حجیم شه؟

PHP:
mysql_query("INSERT INTO picimage (img) VALUES ('" . $image . "')");

نوع فید img باید image باشه یا باینری؟
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
کار این تابع چیه ؟

PHP:
$image = addslashes($fr);
راستی ذخیره عکس داخل دیتابیس باعث نمیشه دیتابیس حجیم شه؟

PHP:
mysql_query("INSERT INTO picimage (img) VALUES ('" . $image . "')");

نوع فید img باید image باشه یا باینری؟

تابع addslashes مربوط به ف.ی.ل.ت.ر کردن کاراکترهای ' یا " یا یه سری کاراکترهای اینجوریه که مشکلی واسه دیتا بیس پیش نیاره .
برای عکس هم باید فیلد از نوع blob باشه !
 
آخرین ویرایش:

P.H.P

Member
$image = addslashes($fr);
کاری میکنه که مشکلی برای دیتابیس پیش نیاد (دوری کردن از یه سری کاراکتر)
راستی ذخیره عکس داخل دیتابیس باعث نمیشه دیتابیس حجیم شه؟
مگه میخواین همه رو کپی کنید؟
فکر نمیکنم بهترین کار اینه که یه تعداد کمی باشه

نوع فید img باید image باشه یا باینری؟

باید باینری باشه

کد:
id int not null auto_increment
img blob
 

1p30

Member
برادر من اگه کسی بخواد عکس هارو ورداره دیتا بیس رو هک می کنه
شما هیچ وقت نمی تونی بگی 100% می تونم جلو گیری کنم
شما حتی عکس روی سی دی رایت کنی بزاری تو گنجه درش هم قفل کنی میشه ورش داشت :d
بهترین گزینه زخیره تو فلدر و سطح دسترسی دادن هست موفق باشی
 

1p30

Member
یا می تونی یک هاست جدا گانه یا یک سرور جدا گانه برای عکس ها بزاری با دسترسی خواص اینطوری حتی اگه سایتت هم باگ داشته باشه چون هاست جدا هست و فقط عکس ها توش هست کمتر می تونه کاریش کنه
موفق باشی
 

my friend

Member
برای امنیت فایل ها، میتونی اونها رو با یک کلید انکود کنی...
از الگوریتم های ساده هست تا پیشرفته... یه سرچ بزنی یه چیزایی گیر میاد...
کلیدش رو هم بزار پسورد کسی که باید فایل ها رو ببینه، فقط باید قبل از نمایش هر فایل، یکبار پسورد رو وارد کنه!!
چون قرار نیست پسورد رو جایی ذخیره کنی...
برای اینکه ببینی پسورد درست هست یا نه، میتونی از الگوریتم sha2 استفاده کنی...
 

جدیدترین ارسال ها

بالا