PDA

View Full Version : تبدیل عکس به کد و ذخیره در دیتابیس



olampiad
جمعه 07 شهریور 1393, 20:44 عصر
سلام و خسته نباشید به اساتید عزیز
ببخشین این چند روزه خیلی سوال می پرسم و اذیتتون میکنم
من چطور می تونم ی تصویر رو به کد تبدیل کنم و بعد کد شده اوون رو در دیتابیس ذخیره کنم.
هر موقع که خواستم از عکس استفاده کنم کد های اون عکس رو از دیتابیس بخونم و به عکس تبدیل کنم.
باور کنید نمی دونستم به این کار چی می گن که تو اینترنت سرچ کنم.
ممنون بابت راهنمایی ها

amir6268
شنبه 08 شهریور 1393, 02:32 صبح
منظورت اینه مثلا عکس شما وقتی میره داخل دیتابیس یه کد اینجوری بده:
pic:1021
بعد اگه اینو داخل یه پست بذاری اون عکس رو نشون بده؟

arash691
شنبه 08 شهریور 1393, 10:59 صبح
اصلا" این کار پیشنهاد نمیشه ... حجم دیتابیس بعد از چند مدت خیلی بالا میره سرعت کارتونم پایین میاد

godofphp
شنبه 08 شهریور 1393, 11:53 صبح
با این وب سایت ها try کن
http://stackoverflow.com/questions/14704559/how-to-insert-image-in-mysql-databasetable
و
http://stackoverflow.com/questions/14638380/mysql-image-insert
و
http://stackoverflow.com/questions/18013723/how-to-insert-an-image-into-mysql-table

Golsha
شنبه 08 شهریور 1393, 12:53 عصر
سلام شما قبل از اینکه بخوای تو دیتابیس ذخیرش کنی باید تبدیل به کدش کنی :

$image = base64_decode(file_get_contents('image.jpg')); // fro changing image to code

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


$src = 'data:image/jpeg;base64,' . base64_encode($image);
echo '<img src=' . $src . '>';

olampiad
یک شنبه 09 شهریور 1393, 06:36 صبح
سلام و خسته نباشید به اساتید عزیز
ممنون بابت همه ی راهنمایی ها
به این تصویر ی نگا بندازید
http://s5.picofile.com/file/8138038076/qwe.PNG
من کد های شمارو نوشتم ولی نتیجه ی اون اینجوری شد.
مشکل از کجاست.
ممنون

olampiad
یک شنبه 09 شهریور 1393, 06:41 صبح
سلام و خسته نباشید دوباره
به این کد ها ینگا بندازید



$image = file_get_contents('image.jpg');
$src = 'data:image/jpeg;base64,'.base64_encode($image);
echo '<img src=' . $src.'>';


من کد های شمارو دستکاری کردم و به این شکل در اومد
این کدی رو که نوشتم به خوبی کار میکنه ومشکلی نداریم.
ولی
وقتی اون رو روی دیتابیس ذخیره می کنیم
و مثل کد زیر فراخوانی می کنم
کار نمکنه؟




mysql_connect('localhost','root','');
mysql_select_db('fff');
$qq=mysql_query("select * from one");

while($ff=mysql_fetch_assoc($qq)){

$src = 'data:image/jpeg;base64,' . base64_encode($ff['img']);
echo '<img src=' . $src . '>';


}

olampiad
یک شنبه 09 شهریور 1393, 07:19 صبح
اینم ی تصویر از دیتابیسمه که داده هارو توش ذخیره کردم.
http://s5.picofile.com/file/8138039192/ewe.PNG
ممنون

تورو خدا کمکم کنید این پروژه رو باید هرچه سریع تر انجام بدم
ممنون بابت راهنمایی ها

Golsha
یک شنبه 09 شهریور 1393, 09:59 صبح
سلام دوست عزیز ، من که بهت گفتم اول باید decode کنی و بریزی تو بانک اطلاعاتی ، بعد اگه خواستی بخونیش اونو encode کنی.

godofphp
یک شنبه 09 شهریور 1393, 10:38 صبح
روی عکسی که مشاهده نمیکنی آدرس عکس رو دربیار و همینجا بزار

Golsha
یک شنبه 09 شهریور 1393, 10:57 صبح
سلام و خسته نباشید دوباره
به این کد ها ینگا بندازید



$image = file_get_contents('image.jpg');
$src = 'data:image/jpeg;base64,'.base64_encode($image);
echo '<img src=' . $src.'>';


من کد های شمارو دستکاری کردم و به این شکل در اومد
این کدی رو که نوشتم به خوبی کار میکنه ومشکلی نداریم.
ولی
وقتی اون رو روی دیتابیس ذخیره می کنیم
و مثل کد زیر فراخوانی می کنم
کار نمکنه؟




mysql_connect('localhost','root','');
mysql_select_db('fff');
$qq=mysql_query("select * from one");

while($ff=mysql_fetch_assoc($qq)){

$src = 'data:image/jpeg;base64,' . base64_encode($ff['img']);
echo '<img src=' . $src . '>';


}





این کد رو با کدی که من نوشتم براتون مقایسه کنید ببینید چیزی کم ننوشتید احیانا ( مثال اینکه قبل از file_get_contents ) یه تابعی رو فراخوانی نکرده باشید :لبخند:

olampiad
یک شنبه 09 شهریور 1393, 12:05 عصر
به این کد ی نگا بندازید


$image = base64_decode(file_get_contents('image.jpg'));


من وقتی این متفیر رو چاپ می کنم چیزی برام نشون نمده.
ممنون

olampiad
یک شنبه 09 شهریور 1393, 12:14 عصر
سلام
خوب هستین
من این کد رو نوشتم ولی کار نمکنه و این ارور رو میده




$image = base64_encode(file_get_contents('image.jpg'));
mysql_connect('localhost','root','');
mysql_select_db('fff');
mysql_query("INSERT INTO `fff`.`one` (`id`, `img`) VALUES (NULL, '{$image}')");





این ارور رو میده

Warning: mysql_query() [function.mysql-query (http://localhost/hhh/function.mysql-query)]: MySQL server has gone away in C:\xampp\htdocs\hhh\dd.php on line 34

Warning: mysql_query() [function.mysql-query (http://localhost/hhh/function.mysql-query)]: Error reading result set's header in C:\xampp\htdocs\hhh\dd.php on line 34

aalmair
یک شنبه 09 شهریور 1393, 12:19 عصر
برای کد کردن عکس


$image_encode_str = base64_encode(file_get_contents('image.jpg'));


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



mysql_connect('localhost','root','');mysql_select_ db('fff');$qq=mysql_query("select * from one"); while($ff=mysql_fetch_assoc($qq)){ $src = 'data:image/jpeg;base64,' . ($ff['img']);echo '<img src=' . $src . '>'; }

Golsha
یک شنبه 09 شهریور 1393, 13:56 عصر
سلام
خوب هستین
من این کد رو نوشتم ولی کار نمکنه و این ارور رو میده




$image = base64_encode(file_get_contents('image.jpg'));
mysql_connect('localhost','root','');
mysql_select_db('fff');
mysql_query("INSERT INTO `fff`.`one` (`id`, `img`) VALUES (NULL, '{$image}')");





این ارور رو میده

Warning: mysql_query() [function.mysql-query (http://localhost/hhh/function.mysql-query)]: MySQL server has gone away in C:\xampp\htdocs\hhh\dd.php on line 34

Warning: mysql_query() [function.mysql-query (http://localhost/hhh/function.mysql-query)]: Error reading result set's header in C:\xampp\htdocs\hhh\dd.php on line 34

دوست عزیز mysql دیگه منسوخ شد رفت پی کارش ، این ارور هم به خاطر استفاده از دستورات mysql ـه ، از mysqli یا pdo استفاده کن درست میشه . اونی که واستون نوشتم مشکلی نداره :چشمک: