PDA

View Full Version : سوال: قرار دادن عکس در دیتابیس



ravandi
چهارشنبه 29 آبان 1387, 15:14 عصر
سلام دوستان
میشه یک کمک بکنید که چه جوری می شه یک عکس را در داخل دیتابیس ذخیره کرد.به دلایل امنیتی نمی خوام عکسم در فایل قرار گرفته باشه...

ممنون از همه

yaqubian
چهارشنبه 29 آبان 1387, 18:30 عصر
دوست عزیز
ذخیره سازی عکس داخل DB کار منطقی نیست چون باید بصورت باینری ذخیره بشه و حجم زیادی رو اشغال می کنه.
ولی چون سئوال پرسیدید:
باید در جدول مربوطه چهار فیلد بصورت زیر تعریف کنید:
1- نام name
2- نوع type
3- اندازه size
4- محتوا content
فرض کنید اسم input file تون رو گذاشتید userfile و اسم دکمه ارسالتون upload باشه!

<?php
//connect to DB
$userfile[0]=$_FILES['userfile'];
if(isset($_POST['upload']) && $userfile[0]['size'] > 0)
{
$fileName = $userfile[0]['name'];
$tmpName = $userfile[0]['tmp_name'];
$fileSize = $userfile[0]['size'];
$fileType = $userfile[0]['type'];

$fp = fopen($tmpName, 'r');
$content = fread($fp, fileSize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$query = "INSERT INTO t_pic (name, type , size, content) VALUES ('$fileName', '$fileType', '$fileSize', '$content')";
mysql_query($query) or die('Error, The size of photo is too large.');
mysql_close();
}
?>
موفق باشید