|
|
|
php แสดงรูปภาพจากฐานข้อมูล oracle แบบ ไบนารี่ เป็นตัวหนังสือขยุกขยุยแทนที่จะเป็นรูป |
|
|
|
|
|
|
|
56.<img src="thaicreate/<?php echo $Result["FG_PIC"][$i];?>"><br>
57.<?php echo $Result["FG_CODE"][$i];?>
ดูจากโค๊ด $Result["FG_PIC"][$i] เป็น binary ใช่ไหมครับ คือเป็น string ของ รูปภาพ
$img_string = 'data:image/png;base64,'.base64_encode($Result["FG_PIC"][$i]);
<img src="<?=$img_string?>" ><br>
ส่วนบันทัด ที่ 57 นั่นเป็นส่วนที่แสดง ขยุกขยุยแหล่ะครับ ยังไงก็โชว์ เพราะ echo ออกมาด้วย
ส่วนใน บันทัดที่ 56 ไม่ได้แสดงออกมา เพราะ ถูก <img ... >ครอบไว้
แต่ก็คง แสดง เป็น ไอคอน ภาพเสีย
ปล.
data:image/png;
สีแดง png นี่ ต้องรู้ว่าเก็บ จาก type อะไรนะครับ png นี่ยกตัวอยา่งเฉยๆ
|
ประวัติการแก้ไข 2015-05-08 17:00:17
|
|
|
|
Date :
2015-05-08 16:57:42 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอขอบคุณทุกๆ ท่านมาก สำหรับคำแนะนำ ผมขอนำไปทดลองใช้งานดูก่อนติดขัดตรงไหนอาจจะขอคำแนะนำเพิ่ม
ขอบคุณมากครับ
|
|
|
|
|
Date :
2015-05-09 17:17:18 |
By :
puupha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขนาดภาพ ไม่ได้มีปัญหากับ database ครับ แต่มีปัญหากับ harddisk เต็มเร็ว
แต่สมัยนี้ จุเป็น tera ไม่น่ามีปัญหา แต่อาจจะมีปัญหา ถ้าถูกจำกัด bandwidth หรือ ปริมาณการเก็บ ลง harddisk
ส่วน type raw กับ blob ต่างกันที่ชื่อเรียกครับ
โค๊ดเช็คไซด์
Code (PHP)
$limit = 20000;
if( filesize ( $_FILES['...']['tmp_name'] )>$limit){
// echo alert ......
}
|
|
|
|
|
Date :
2015-05-14 07:46:02 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-05-14 07:46:02
รายละเอียดของการตอบ ::
ขอบคุณ คุณ Chaidhanan มาก ที่ให้ความรู้ (NO.3 และ NO.6) ครับ
ผมขอปรึกษาเรื่อง Code ครับ
ดูจาก Code ด้านล่าง ในการบันทึกข้อมูลลง database oracle ฟิล์ FILESNAME เป็น BLOB (สามารถบันทึกข้อมูลได้)
แต่ถ้าผมเปลี่ยน FILESNAME เป็น LONG RAW จะไม่สามารถบันทึกได้ต้องแก้ไข code พอจะแนะนำได้ไหมครับว่าต้องแก้เป็นอย่างไร(จำเป็นต้องใช้ long raw) ครับ
Code (PHP)
<html>
<head>
<title>ทดสอบ</title>
</head>
<body>
<?
if($_FILES["filUpload"]["name"] != "")
{
//*** Insert Record ***//
$objConnect = oci_connect("user","789","test");
$lob = oci_new_descriptor($objConnect, OCI_D_LOB);
เริ่ม >> $strSQL = "INSERT INTO FILES ";
$strSQL .="(FILESID,NAME,FILESTYPE,FILESNAME) VALUES ";
$strSQL .="(seq_next_filesid.nextval,'".$_POST["txtName"]."' ";
$strSQL .=",'".$_FILES["filUpload"]["type"]."',EMPTY_BLOB()) RETURNING FILESNAME INTO :BLOBDATA";
$objParse = oci_parse($objConnect, $strSQL);
oci_bind_by_name($objParse, ':BLOBDATA', $lob, -1, OCI_B_BLOB);
$objExecute = oci_execute($objParse, OCI_DEFAULT);
ถึง >> $lob->savefile($_FILES['filUpload']['tmp_name']);
if($objExecute)
{
oci_commit($objConnect);
echo "Copy/Upload Complete<br>";
}
else
{
oci_rollback($objConnect);
echo "Copy/Upload is not Complete";
}
oci_free_descriptor($lob);
oci_free_statement($objParse);
oci_close($objConnect);
}
?>
<a href="PageUploadToOracle3.php">View files</a>
</body>
</html>
ผมรบกวนด้วยครับ
ขอบคุณมากครับ
|
|
|
|
|
Date :
2015-05-14 09:03:07 |
By :
puupha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็ไม่ค่อยชำนาญ กับ oracle นะครับ ออกตัวก่อน
ลองดูตัวอย่าง นะครับ
Code (PHP)
$db=ocilogon("user","password", "database");
$qs = "insert into longRawTable (id, fileimage)" . " values (:id, :fileimage)";
$stmt = OCIParse($db, $qs);
$i=1;
$fileimage = file_get_contents( "a_file" );
OCIBindByName ( $stmt, ":id", $i, -1);
OCIBindByName ( $stmt, ":fileimage", $fileimage, -1, SQL_LBI);
ociexecute($stmt, OCI_DEFAULT);
ocicommit($db);
|
|
|
|
|
Date :
2015-05-14 11:58:00 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-05-14 11:58:00
รายละเอียดของการตอบ ::
คุณ Chaidhanan ครับ
ไม่รู้ว่าผิดตรงไหนครับ ขึ้น error ตามภาพด้านล่าง
ผมเอาโค๊ดมาผสมกัน
code ไฟล์ที่ใช้บันทึกครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?
$limit = 100;
if($_FILES["filUpload"]["name"] != "")
{
//-----------
/* $db=ocilogon("user","5878", "test");
$qs = "insert into FILES (FILESID, IMAGE)" . " values (:id, :fileimage)";
$stmt = OCIParse($db, $qs);
$i=1;
$fileimage = file_get_contents( "a_file" );
OCIBindByName ( $stmt, ":id", $i, -1);
OCIBindByName ( $stmt, ":fileimage", $fileimage, -1, SQL_LBI);
ociexecute($stmt, OCI_DEFAULT);
ocicommit($db);
*/ //-------
//*** Insert Record ***//
$objConnect = oci_connect("user","5878","test");
$lob = oci_new_descriptor($objConnect, OCI_D_LOB);
$strSQL = "INSERT INTO FILES ";
$strSQL .="(FILESID,NAME,FILESTYPE,IMAGE) VALUES ";
$strSQL .="(seq_next_filesid.nextval,'".$_POST["txtName"]."' ";
$strSQL .=",'".$_FILES["filUpload"]["type"]."',:fileimage";
$fileimage = file_get_contents( "a_file" );
$objParse = oci_parse($objConnect, $strSQL);
oci_bind_by_name($objParse, ':fileimage', $fileimage, -1, SQL_LBI);
$objExecute = oci_execute($objParse, OCI_DEFAULT);
$lob->savefile($_FILES['filUpload']['tmp_name']);
if($objExecute)
{
oci_commit($objConnect);
echo "Copy/Upload Complete<br>";
}
else
{
oci_rollback($objConnect);
echo "Copy/Upload is not Complete";
}
oci_free_descriptor($lob);
oci_free_statement($objParse);
oci_close($objConnect);
}
?>
<a href="PageUploadToOracle3.php">View files</a>
</body>
</html>
ไม่ได้ไม่เป็นไรครับ แค่นี้ผมก็ขอบคุณมากแล้วที่ช่วยแนะนำผม
ขอบคุณมากครับ
แต่บอกว่า ยากจริงๆ สำหรับมือใหม่อย่างพวกผม
|
|
|
|
|
Date :
2015-05-14 16:54:33 |
By :
puupha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a_file
เปลี่ยนเป็น
$_FILES["filUpload"]["tmp_name"]
|
|
|
|
|
Date :
2015-05-15 04:50:51 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-05-15 04:50:51
รายละเอียดของการตอบ ::
ผมเปลี่ยน code จาก a_file เป็น $_FILES["filUpload"]["tmp_name"] ตามที่คุณ Chaidhanan แนะนำ
code ที่เปลี่ยน-----------
Code (PHP)
//*** Insert Record ***//
$db=ocilogon("user","5878", "test");
$lob = oci_new_descriptor($objConnect, OCI_D_LOB);
$strSQL = "INSERT INTO FILES ";
$strSQL .="(FILESID,NAME,FILESTYPE,IMAGE) VALUES ";
$strSQL .="(seq_next_filesid.nextval,'".$_POST["txtName"]."' ";
$strSQL .=",'".$_FILES["filUpload"]["type"]."',:fileimage";
$fileimage = file_get_contents( $_FILES['filUpload']['tmp_name'] );
$objParse = oci_parse($objConnect, $strSQL);
oci_bind_by_name($objParse, ':fileimage', $fileimage, -1, SQL_LBI);
$objExecute = oci_execute($objParse, OCI_DEFAULT);
$lob->savefile($_FILES['filUpload']['tmp_name']);
if($objExecute)
{
oci_commit($objConnect);
echo "Copy/Upload Complete<br>";
}
else
{
oci_rollback($objConnect);
echo "Copy/Upload is not Complete";
}
oci_free_descriptor($lob);
oci_free_statement($objParse);
oci_close($objConnect);
}
?>
----------------------------
ลองรันแล้ว error ตามภาพด้านล่างครับ
รบกวนท่านผู้รู้ช่วยแนำนำหน่อยครับ
ขอบคุณมากครับ
|
|
|
|
|
Date :
2015-05-29 13:40:21 |
By :
puupha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|