PDA

View Full Version : مشکل در ذخیره عکس در mysql



hidden68
سه شنبه 05 شهریور 1392, 23:42 عصر
سلام من تو یه پیج برای نمایش عکسی که تو دیتابیس ذخیره شده دچار مشکل شدم
نمیدونم چرا جای عکس یه مشت کاراکتر نمایش میده
ممنون میشم یکی راهنمایی کنه
109802
http://barnamenevis.org/images/misc/pencil.png

AliRezaPro
چهارشنبه 06 شهریور 1392, 00:17 صبح
ذخیره عکس تو دیتابیس کار جالبی نیست , سعی کنید آدرس عکس را ذخیره بفرمایید , با این حال کدتون رو بدید تا بررسی بشه
ببینید :

http://raynux.com/blog/2008/11/20/store-and-display-image-from-mysql-database/

hidden68
چهارشنبه 06 شهریور 1392, 00:32 صبح
میدونم دوست من
اما چیز مهمی نیست
فقط یه پروژه دانشجویی سادس
فقط میخوام اجرا بشه


<?php


$_jens_id = $_GET["id"];


$servername = "localhost";
$port = "3306";
$dbname = "esam";
$user = "root";
$pass = "";

$link = mysql_connect($servername.":".$port,$user,$pass);
mysql_select_db($dbname,$link);



$jens = "SELECT *FROM `jens_tbl` where jens_id =".$_jens_id;
$resault = mysql_query($jens,$link);

if( $rec = mysql_fetch_assoc($resault))
echo($rec["picture"]);


?>

p30online
چهارشنبه 06 شهریور 1392, 05:39 صبح
یه سری به اینجا پست های آخرش بزن کارتو راه می نداره

http://barnamenevis.org/showthread.php?412067-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B9%DA%A9%D8%B3-%D9%87%D8%A7%DB%8C-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C

hidden68
چهارشنبه 06 شهریور 1392, 06:54 صبح
یه سری به اینجا پست های آخرش بزن کارتو راه می نداره

http://barnamenevis.org/showthread.php?412067-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B9%DA%A9%D8%B3-%D9%87%D8%A7%DB%8C-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C
این تاپیکو خوندم
اینجا هم من چیزی غیر از اون کدها ننوشتم
هموناس
اما خروجیش هیچ عکسی نیست !!

AliRezaPro
چهارشنبه 06 شهریور 1392, 07:40 صبح
تو تگ img بزارید نتیجه رو اعلام کنید :

echo "<img src=
از این هدر هم قبل از نمایش استفاده کنید :

header("Content-type: image/png");

hidden68
چهارشنبه 06 شهریور 1392, 16:01 عصر
تو تگ img بزارید نتیجه رو اعلام کنید :

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

header("Content-type: image/png");
ممنون از اینکه راهنمایی میکنید دوست من
کدهایی که اضافه کردم اینان


header("Content-type: image/png");
echo '<img src="'.$rec['picture'].'" />';

الان یه ارور دیگه میده
کل صفحه مشکی میشه
بالای صفحه این ارورو میده
109831

2undercover
چهارشنبه 06 شهریور 1392, 16:05 عصر
نیازی نیست که توی تگ img بزارید فقط کافیه که header رو ارسال کنید و نتیجه رو echo کنید!

hidden68
چهارشنبه 06 شهریور 1392, 17:32 عصر
نیازی نیست که توی تگ img بزارید فقط کافیه که header رو ارسال کنید و نتیجه رو echo کنید!
هیچ تغییری نکرد

AliRezaPro
چهارشنبه 06 شهریور 1392, 18:03 عصر
بفرمایید :

http://stackoverflow.com/questions/3385982/the-image-cannot-be-displayed-because-it-contains-errors
اینجا رو هم ببینید :

http://forums.phpfreaks.com/topic/177026-solved-the-image-cannot-be-displayed-because-it-contains-errors/
http://w3schools.invisionzone.com/index.php?showtopic=26458

hidden68
چهارشنبه 06 شهریور 1392, 23:49 عصر
بفرمایید :

http://stackoverflow.com/questions/3385982/the-image-cannot-be-displayed-because-it-contains-errors
اینجا رو هم ببینید :

http://forums.phpfreaks.com/topic/177026-solved-the-image-cannot-be-displayed-because-it-contains-errors/
http://w3schools.invisionzone.com/index.php?showtopic=26458

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

hidden68
پنج شنبه 07 شهریور 1392, 20:17 عصر
اساتید و مهندسین گرامی ؟
واقعآ کسی نمیدونه این مشکل ناشی از چیه ؟
خواهشآ اگه کسی میدونه دریغ نکنه
ارائه دارم :افسرده:

hidden68
دوشنبه 11 شهریور 1392, 00:49 صبح
کماکان در پی جواب در جستجو هستیم :اشتباه:

افشین66
دوشنبه 11 شهریور 1392, 01:48 صبح
هدرت درست ست نمیشه !!! قبل از هدر اصلا نباید خروجی دداشته باشی من خودم این مشک داشتم !!!! کدت رو بگذار ایرادش رفع کنم !!!! دست داشتی pm بگذار !!!

hidden68
دوشنبه 11 شهریور 1392, 02:28 صبح
هدرت درست ست نمیشه !!! قبل از هدر اصلا نباید خروجی دداشته باشی من خودم این مشک داشتم !!!! کدت رو بگذار ایرادش رفع کنم !!!! دست داشتی pm بگذار !!!
مرسی دوست من
اما کدم همونیه که گذاشتم
منظورت کل کد اون پیجه؟

امین مستانی
دوشنبه 11 شهریور 1392, 02:44 صبح
سلام
کد هدر رو بالاتر از همه کد ها قرار بده و فرمتش رو مطابق فرمت عکس بزار

header("Content-type: image/png");

header("Content-type: image/jpg");

hidden68
دوشنبه 11 شهریور 1392, 02:51 صبح
سلام
کد هدر رو بالاتر از همه کد ها قرار بده و فرمتش رو مطابق فرمت عکس بزار

header("Content-type: image/png");

header("Content-type: image/jpg");

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

header("Content-Type: " . $rec["image_type"]);
بالاتر از همه ی کدهام یعنی کجا ؟
اینجارو متوجه نشدم

امین مستانی
دوشنبه 11 شهریور 1392, 02:56 صبح
در اولین خط کد ها قرار بده

و چک کن (BOM (Bytes Order Mark هم غیر فعال باشه
تابع هدر باید قبل از هر گونه خروجی به مرورگر ارسال بشه و این BOM هم یه سری کارکتر هست که فرمت فایل رو مشخص میکنه که قبل از هدر فرستاده میشه و باعث ارور میشه
در ویرایشگر Notepad++ در گزینه Encoding گزینه Convert to UTF-8 without BOM رو انتخاب کنید

ابوذر محمودی
دوشنبه 11 شهریور 1392, 09:29 صبح
به احتمال زیاد مشکل از ذخیره کردن عکس تو دیتابیسه
اگه میشه اون قسمتی که تو دیتابیس درج میکنین رو بذارید.
محتوی فایل رو با کد زیر بدست بیارید بعد اینو تو دیتابیس ذخیره کنین ببینید مشکل حل میشه یا نه؟


$content=mysql_real_escape_string(file_get_content s($_FILES['image']['tmp_name']));

این کدهارو هم جایگزین کدهای بالا کنید در واقع فقط هدر اضافه شده:


<?php
header("Content-type: image/jpeg");
$_jens_id = $_GET["id"];

$servername = "localhost";
$port = "3306";
$dbname = "esam";
$user = "root";
$pass = "";

$link = mysql_connect($servername.":".$port,$user,$pass);
mysql_select_db($dbname,$link);

$jens = "SELECT *FROM `jens_tbl` where jens_id =".$_jens_id;
$resault = mysql_query($jens,$link);

if( $rec = mysql_fetch_assoc($resault))
echo($rec["picture"]);
?>


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


<img src="image.php?id=6" />
که کافیه به جای 6 , id عکس رو بذارید.

hidden68
دوشنبه 11 شهریور 1392, 19:57 عصر
به احتمال زیاد مشکل از ذخیره کردن عکس تو دیتابیسه
اگه میشه اون قسمتی که تو دیتابیس درج میکنین رو بذارید.
محتوی فایل رو با کد زیر بدست بیارید بعد اینو تو دیتابیس ذخیره کنین ببینید مشکل حل میشه یا نه؟


$content=mysql_real_escape_string(file_get_content s($_FILES['image']['tmp_name']));

این کدهارو هم جایگزین کدهای بالا کنید در واقع فقط هدر اضافه شده:


<?php
header("Content-type: image/jpeg");
$_jens_id = $_GET["id"];

$servername = "localhost";
$port = "3306";
$dbname = "esam";
$user = "root";
$pass = "";

$link = mysql_connect($servername.":".$port,$user,$pass);
mysql_select_db($dbname,$link);

$jens = "SELECT *FROM `jens_tbl` where jens_id =".$_jens_id;
$resault = mysql_query($jens,$link);

if( $rec = mysql_fetch_assoc($resault))
echo($rec["picture"]);
?>


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


<img src="image.php?id=6" />
که کافیه به جای 6 , id عکس رو بذارید.

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

<?php


if((isset($_FILES["image_fild"])) && ($_FILES["image_fild"]["size"] > 0))
{

$servername = "localhost";
$port = "3306";
$dbname = "esam";
$user = "root";
$pass = "";

$link = mysql_connect($servername.":".$port,$user,$pass);
mysql_select_db($dbname,$link);





$tmpName = $_FILES["image_fild"]["tmp_name"];
$imgType = $_FILES["image_fild"]["type"];

$fp = fopen($tmpName, 'r');
$imageName = fread($fp, filesize($tmpName));
if(!get_magic_quotes_gpc())
$imageName = addslashes($imageName);
fclose($fp);



$P = "INSERT INTO `esam`.`jens_tbl` (`user_id`, `name`, `picture`, `subject`, `mony`, `image_type`)VALUES
('".$_SESSION["activeuserID"]."', '".$_POST['name_fild']."', '$imageName', '".$_POST['subject_fild']."',
'".$_POST['mony_fild']."', '$imgType');";

mysql_query($P);





header("location:Main.php");
}

?>

hidden68
دوشنبه 11 شهریور 1392, 20:16 عصر
خوب
بچه ها لطف کردن مارو راهنمایی کردن تا مشکلمون حل شد
مام میگم مشکل چطوری حل شد تا اگه کسی بعدا اومد اینجا استفاده کنه
به نقل از افشین66
خیلی کمک کرد
مرسی داداش

اول باید یه فایل جدا باز کنیم و توش به دیتابیس کانکت شیمو هدرو پرینت
تو کد من اینجوری میشه


<?php
$_jens_id = $_GET["id"];
$servername = "localhost";
$port = "3306";
$dbname = "esam";
$user = "root";
$pass = "";
$link = mysql_connect($servername.":".$port,$user,$pass);
mysql_select_db($dbname,$link);
$jens = "SELECT *FROM `jens_tbl` where jens_id =".$_jens_id;
$resault = mysql_query($jens,$link);

if( $rec = mysql_fetch_assoc($resault))
{
header("Content-Type: " . $rec["image_type"]);
print ($rec["picture"]);
}

?>



بعد توی اون پیج اصلی به جای هدر و پرینت این کدو استفاده میکنیم


<td ><img src="picture.php?id=<?php echo $_jens_id?>" /></td>

قاعدتآ باید همونطور اول خروجی میداد
نمیدونم چجوری میشه که اینجوری جواب میده اما هدر رو تو پیج اصلی بزنی ارور

به هر حال ممنون :لبخندساده:

افشین66
دوشنبه 11 شهریور 1392, 21:15 عصر
خواهش می کنم داداش