Mat*_*his 3 php postgresql png bytearray
我想在PHP文件中显示PostgreSQL数据库中的图像.在尝试了很多不同的可能性后,我不会走得太远.这是我做的:
上传:
echo "<div>".
"<table border=\"1\" cellpadding=\"3\">".
"<form action=\"test2.php\" method=\"post\" enctype=\"multipart/form-data\">".
"<tr>".
"<td>".
"<input type=\"file\" name=\"file\" id=\"file\">".
"<input class=\"button\" type=\"submit\" name=\"submit\" value=\"Submit\">".
"<tr>".
"</tr>".
"</form>".
"</table>".
"</div>";
Run Code Online (Sandbox Code Playgroud)
显示:
if(isset($_FILES['file'])) //file uploaded
{
$file_raw = file_get_contents($_FILES['file']['tmp_name']);
$file = pg_escape_bytea($file_raw);
//Here is Code to insert into Database but just to test, I try it directly:
header('Content-Type: image/png');
echo pg_unescape_bytea($file);
}
Run Code Online (Sandbox Code Playgroud)
我已将显示部分放在一个额外的文件中,依此类推,但这些是您需要了解的基本信息.
我不会显示任何图像,只是浏览器中的"Broken Image"图标.这有什么不对?我怎么解决这个问题?谢谢!
处理简单:
<?php
// Connect to the database
$dbconn = pg_connect( 'dbname=foo' );
// Read in a binary file
$data = file_get_contents( 'image1.jpg' );
// Escape the binary data to avoid problems with encoding
$escaped = bin2hex( $data );
// Insert it into the database
pg_query( "INSERT INTO gallery (name, data) VALUES ('Pine trees', decode('{$escaped}' , 'hex'))" );
// Get the bytea data
$res = pg_query("SELECT encode(data, 'base64') AS data FROM gallery WHERE name='Pine trees'");
$raw = pg_fetch_result($res, 'data');
// Convert to binary and send to the browser
header('Content-type: image/jpeg');
echo base64_decode($raw);
?>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4709 次 |
最近记录: |