PDA

View Full Version : ذخیره تصویر



marzbannia
یک شنبه 13 آذر 1390, 10:33 صبح
با سلام خدمت دوستان
1) من می خواهم عکسی را در جدولی (MY SQL) ذخیره کرده وبعد عکس را از جدول خوانده(PHP) و نمایش دهم (لطفا مراحل کار نوع فیلد و ... کامل توضیح داده شود)
2) من اطلاعات فارسی را از جدولی میخوانم ولی به جای حروف فارسی کراکتر ؟ ظاهر می شود مشکل چیست ؟
ممنونم

persian-boy
یک شنبه 13 آذر 1390, 11:19 صبح
برای مشکل فارسی نوشتن از کد زیر استفاده کنید یا انکدینگ جداولتون رو روی utf-8 قرار بدید

mysql_query("set names 'utf8'");

برای گرفتن عکس هم ، تکه کد زیر کمکتون میکنه




$db_link = mysql_connect(localhost, dbuname, dbpass);
mysql_select_db(dbname,$db_link);
$find = mysql_query("select id from imgdb");

$row = mysql_fetch_assoc($find);
$img = $row['address'];

بعد با کد زیر عکس رو نمایش میدید

<img src="$img"/>

اگه عکس ها زیاد بود میتونید بزارید داخل حلقه و همه رو چاپ کنید

marzbannia
یک شنبه 13 آذر 1390, 11:30 صبح
لطفا برای درج تصویر و در مورد جدول و نوع فیلد داده ای بیشتر توضیح دهید .

saina2006
یک شنبه 13 آذر 1390, 19:30 عصر
لازم نیست خود عکس رو در جدول سیو کنی، اینجوری حجم دیتابیست خیلی زیاد میشه
میتونی آدرس عکس رو ذخیره کنی اگر هم اسرار به ذخیره خود عکس داری از BLOB Type در MYSQL استفاده کن

pejman_view
دوشنبه 14 آذر 1390, 00:55 صبح
سلام

با توجه به اینکه حجم دیتابیس بالا می رود و حتی سرعت لود عکس هم نسبت به حالت فایلی وجود دارد توصیه نمی شود اما هیچ موقع دوست ندارم کسی بی جواب بمونه از روش زیر استفاده کن:

اول دیتابیس رو همانطور که SAINA2006 گفت blob انتخاب می کنید و ما هم همین کار می کنیم:

اول از همه دیتابیس را درست می کنیم:

CREATE TABLE `images` ( `id` INT(11)NOT NULL AUTO_INCREMENT, `image` MEDIUMBLOB NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM;


سپس تابعی می خواهیم که عکس را به رشته تبدیل کند که بهترین راه استفاده از کد گذاری base 64 :


$image = chunk_split(base64_encode(file_get_contents("image.jpg"))); $query = "INSERT INTO images (image) VALUES('$image')"; mysql_query($query) or die(mysql_error()); echo "Image id is ".mysql_insert_id();

حالا از کد زیر برای نمایش عکس استفاده می کنیم:



header('Content-type: image/jpeg'); $query = "SELECT image from images where id=1"; $rs = mysql_fetch_array(mysql_query($query)); echo base64_decode($rs["image"]);


با آرزوی موفقیت