مشكل در باز يابي عكس از ديتا بيس

para2x

Member
سلام
ببخشيد بچه ها من عكس هام رو رفتم ريختم تويه ديتا بيس ، حالا كه مي خوام بگيرم ونا رو يه سري كد و نوشته نامفهوم پس مي ده ، چي كار كنم ؟
 

jhoseini

Member
محتویات فایل باید بصورت باینری تو دیتابیس ثبت شه، bLOB
و برای بازیابی، بعد از fetch کردن از دیتابیس، نباید header بصورت text/plain ارسال شه
 

پیوست ها

  • MySQL_File_UpLoad.rar
    1.4 کیلوبایت · بازدیدها: 14
  • store images and files in database.zip
    68.5 کیلوبایت · بازدیدها: 13

para2x

Member
آقای حسینی بله درسته می دونم باینری ذخیره شده
خودم این هدر رو هم قبلش ارسال می کنم
PHP:
header('Content-Type: image/jpeg');
چون م یدونم همش jpg هست ، حالا وقتی اونو ارسال می کنم فقط یه جای عکس می یاد که توش خالی هس ، مثل اینکه مثلا آدرس رو اشتباه دادم برا انزرت کردن عکس
 

imanmir

Member
آقای حسینی بله درسته می دونم باینری ذخیره شده
خودم این هدر رو هم قبلش ارسال می کنم
PHP:
header('Content-Type: image/jpeg');
چون م یدونم همش jpg هست ، حالا وقتی اونو ارسال می کنم فقط یه جای عکس می یاد که توش خالی هس ، مثل اینکه مثلا آدرس رو اشتباه دادم برا انزرت کردن عکس

سلام این مشکل منم هست اگه جوابشو رو فهمیدی تو انجمن بذار بقیه هم یاد بگیرند کلا هر کی می دونی بگه بی زحمت
 

tabib_m

Member
نمونه ش:
http://pear.php.net/bugs/bug.php?id=4586

فکر کنم اگر با فایرفاکس (یا هر چیزی غیر از IE)‌ صفحه رو باز کنی، به نتیجه ی مطلوب برسی.
یا اگر از image/jpg استفاده کنی، با IE کار میکنه (با بقیه رو نمیدونم)
 

jhoseini

Member
مشکل حل نشده هنوز؟
13.gif

با import مشکل دارید یا fetch ؟

من برای import از این کد :
PHP:
<?
include_once('db.inc');
$data_file = "fl.gif";
$val = fread(fopen($data_file, 'rb'), filesize($data_file));
$val = '0x' . bin2hex($val);
$sql = mysql_query(" INSERT INTO uploadpic ( uploadpic ) VALUES ( ".$val." ) " ) ; 
if(!$sql)echo "Error ";
else echo "done";
?>
و برای fetch و نمایش از این کد :
PHP:
<?
include_once('db.inc');
$sql = mysql_query(" SELECT * FROM uploadpic WHERE 1 " ) ;
if(!$sql)echo "Error ";
$pic = mysql_result( $sql ,0,0 );
echo $pic;
?>
استفاده کردم کار میکرد، شما تست کنید فکر میکنم همین کافیه
173.gif

البته بشرطی که قول بدی قبلش و بعدش header ارسال نشه!
 

para2x

Member
آقا مشکل تویه fetch کردن هست ،
یه چیزی تویه یه صفحه که اینکلود نداشته باشه می شه ،ولی تویه یه صفحه دیگه نمیشه ، نمی دونم چرا ؟
با یه تابع نمی شه با یه کلاس می شه ، اصلا یه جوریه
یه چیزه دیگه این که انکودینگ هام همه مرتبه و همه UTF-8 هستن
 
آخرین ویرایش:

solartec

Member
یا سلام

و با تشگر از دوستان درباره مطرح کردن این مبحث .

من هم در باز یابی عکس از دیتابیس مشکل دارم.
و همچنین دوست عزیز jhoseini کدی که شما درج کردید خروجی به صورت عکس نمی دهد.
 

jhoseini

Member
این داره کار میکنه دیگه! :neutral:

---------------
solartec شما لکنت زبان داری؟
45.gif
 

پیوست ها

  • mysql.file.upload.sample.rar
    31.8 کیلوبایت · بازدیدها: 11
آخرین ویرایش:

para2x

Member
آقای حسینی ببخشیدا درسته من دقیقا تویه یه فایل تست می تونم این کارو انجام بدم
ولی تویه اون فایل ایندکس اصلیم که می خوام تویه جاش اونو کار بذارم ، کد های باینریش و نشون می ده نمی دونین چرا ؟
 

jhoseini

Member
قبل اجرای این کد header به صورت text/plain ارسال میشه که نباید بشه، بگردید ببینید کجا نشتی داره
13.gif
 

imanmir

Member
قبل اجرای این کد header به صورت text/plain ارسال میشه که نباید بشه، بگردید ببینید کجا نشتی داره
13.gif

بحث خیلی جالب شد جناب para2x شما اگه مشکلتون حل شد بی زجمت کد رو بگذاری همه استفاده کنند در ضمن بابت همکاری تمامی دوستان بنده تز همکی تشکر می کنم
 

solartec

Member
دوست عزیز jhoseini کد شما را کاملاً تست کردم و درست کار می کرد .
مشکل من عرم نمایش تصویر مود نز خودم بود نه آخرین تصویر ارسالی
!!!!!!!!!!!! ‌همچنین مشکل ار سال پست از سایت بود .
 

para2x

Member
عزیز کوئری آقای حسینی رو عوض کن به اون چیزی که می خوای
فک نکنم مشکلی بازم داشته باشی
 

imanmir

Member
سلام

سلام

کد زیر برای ارسال عکس به دیتابیس

<?php
$db = mysql_connect('localhost','root','');
mysql_select_db('image');
$sql = mysql_query(" SELECT * FROM mune1 WHERE 1 " ) ;
$data_file = "fl.jpg";
$val = fread(fopen($data_file, 'rb'), filesize($data_file));
$val = '0x' . bin2hex($val);
$sql = mysql_query(" INSERT INTO mune1 ( uploadpic ) VALUES ( ".$val." ) " ) ;
if(!$sql)echo "Error ";
else echo "done";

?>

کد زیر برای نمایش عکس از دیتا بیس
<?php
header('Content-Type: image/jpeg');
$db = mysql_connect('localhost','root','');
mysql_select_db('image');
$sql ="SELECT * FROM mune1";
$q=mysql_query($sql);
while($row=mysql_fetch_row($q))
{
echo $row[0];
}
?>
مشکل من:زمانی که یک خط html یا echo اسفاده می کنم شکل زیر ظاهر می شود و در ضمن فقط یک تصویر رو نمایش می ده ؟

? JFIF ``?Photoshop 3.08BIM 튒esolution ` ` 8BIM FX Global Lighting Angle x8BIM FX Global Altitude 8BIM int Flags 8BIM Copyright Flag 8BIM' Japanese Print Flags 8BIM ?lor Halftone
.....

چه کار کنم؟
 

jhoseini

Member
مشکل من:زمانی که یک خط html یا echo اسفاده می کنم شکل زیر ظاهر می شود و در ضمن فقط یک تصویر رو نمایش می ده ؟
دوست عزیز بارها گفت شده، قبل و بعد از نمایش عکس نباید header ارسال شه
شما باید عکس رو تو یه فایل php مجزا ایجاد کنید، و لینک نمایشش رو تو صفحه اصلیتون بزارید فقط
 

para2x

Member
آااااااااااااااای ای دمت گرم
راس می گی آقای حسینی الان افتاد
واااااااااااای من خنگ دنبال هدر می گشتم نگو ..........
 

para2x

Member
دوست عزیز مثالش اینه که
شما یه فایل درس می کنی مثه pic.php که عکس رو خودش از دیتا بیس می گیره بعد اون وقت تویه صفحه اصلی اینو می ذاری
PHP:
<img src="pic.php">
 

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

بالا