โปรแกรมมั่ว #5 Mssql Image + PHP
posted on 14 Sep 2010 17:23 by annmindกริ๊ดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดด
มาถึงก็โวยวายซะหน่อย ฮ่า ฮ่า ทำมาตั้งนาน แก้มากี่ร้อยหน
ไม่ได้จำ จำไม่ได้
ใครเคยเจอปัญหาเดียวกันนี้ยกมือขึ้นนนนนนนนน
ว่าด้วยเรื่องของข้อมูลรูปภาพที่เก็อยู่ในฐานข้อมูล MSSQL โดยมีชนิดฟิลด์เป็น Image
เรื่องการเอาเข้าเราไม่พูดถึง(เพราะเราไม่ได้ทำ ฮ่า ฮ่า) แต่ตอนที่จะแสดงเนี่ยยยยย
ก็เรามันมีหน้าที่เอาข้อมูลจากฐานข้อมูลมาแสดงให้ได้ ไม่ว่าจะแบบไหนนี่นา เฮ่อ
ทำตามสเต็ปที่เสิร์ชเจอทุกอย่างแล้วก็ยังไม่ได้
1.ต้องแยกหน้าที่แสดงภาพออกมาโดดๆ ไม่ให้มี HTML
2.ใส่ Header ให้มันก่อน แล้วค่อยสั่ง echo
ก็ทำทุกอย่างเรียบร้อย ก็ยังไม่ได้ จะบ้าตาย ใส่นั่นใส่นี่ ย้ายนั่นย้ายนี่ ไม่ได้ดดดดดด
ตอนแรกไม่ใส่เฮดเดอร์ ข้อมูลออกมาเป็นต่างดาว ต่อมาใส่เฮดเดอร์ให้แล้ว ตอนนี้
รูปดันออกมาได้แค่เสี้ยวเดียว ลองคลิกขวาที่รูปดู มันบอก 4096 byte.. บร๊า มัน 4 KB ที่ไหนเล่า
จะเอายังไงกะช๊านนนนนนนนนนนนนนนนน
..
.
และในที่สุด ก็มาจบที่ php.net หน้านี้เลย php.net/manual/en/function.mssql-query.php
อ่านก็ไม่ค่อยออก อย่างกะเค้าจะบอกว่า ใน php.ini มีอะไรบางอย่างที่กำหนดไว้แค่นั้น
อ่า .. คิดในใจ คงต้องแก้ .. แล้ว จะไปแก้ไงล่ะ บร๊า admin เค้าจะมาทำให้เหรอ เฮ่อออ อ่านต่อไปก่อน
เพียงไม่กี่บรรทัดต่อมา เราก็พบทางสว่าง ฮ่า ฮ่า ฮ่า
ini_set ( 'mssql.textlimit' , 'xxxxxx' );
ini_set ( 'mssql.textsize' , 'xxxxxx' );
xxxxxx อยากกำหนดลิมิตให้มันกี่ไบท์ ก็ใส่โลดดดดดดดดดด เย่!
ดังนั้น จึงเป็นดังฉนี้
#perpic.php
ini_set ( 'mssql.textlimit' , '204800' );
ini_set ( 'mssql.textsize' , '204800' );
header("content-type:image/BMP;"); //เนื่องจากชนิดรูปเรามัน bmp
include "../conn.php" ;
$id = $_REQUEST['id']; //รับค่าตัวแปรมาเพราะจะได้รู้ว่าเอาเรคคอร์ดไหน
$q="Select Pers_Picture From Person_Picture Where Pers_Id = '$id'";
$Rs = mssql_query($q, $Conn) or die(" SQL can't display ");
$row = mssql_fetch_array($Rs);
$im=$row["Pers_Picture"];
echo $im;
mssql_free_result($Rs);
mssql_close($Conn);
?>
ส่วนหน้าแสดงผล อยากให้รูปปรากฎตรงไหนก็ img src โลด
..
<img src=perpic.php?id=<?php echo $id;?> width="xxx" height="xxx">
..
เรียบร้อยยยยยยย เย่!
edit @ 14 Sep 2010 17:52:02 by annmind