我想在
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>";
显示:
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); }
解决方法
处理简单:
<?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); ?>