且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

努力用php显示blob图像

更新时间:2022-12-03 10:59:36

您可以这样做:

  if(!empty($ _ GET ['profile'])&& is_numeric($ _ GET ['profile']))
{
$ con = mysql_connect(localhost,root,);
$ mysql_select_db(projectDB);
$ sql =SELECT profileImage FROM tbUsers WHERE userID =。 $ _GET [轮廓];
$ result = mysql_query($ sql)或die(mysql_error());

$ content = mysql_result($ result,0,file_content);
$ name = mysql_result($ result,0,file_name);
$ type = mysql_result($ result,0,file_type);
$ size = mysql_result($ result,0,file_size);
header(Content-type:$ type);
$ b $ echo $ content

}

注:你应该在你的表中保存你的BLOB数据

file_name =用于保存文件名

 $ _ FILES ['file'] ['name'] 

file_type =保存文件类型

$ $ p $ $ $ $ FILES ['file'] ['type']
$ c


$ file_size =保存文件大小

pre $ code > $ _ FILES ['file'] ['size']


I am building a simple website, I want to allow the users to upload and change their avatars. At present I have been able to upload images to a mysql database, stored as blobs with the code as follows:

//connected to DB, userID fetched

$image = $FILES['fileToUpload']['tmp_name'];
$fp = fopen($image, 'r');
$content = fread($fp, filesize($image));
$content = addslashes($content);
fclose($fp);

$sql = "UPDATE tbUsers SET profileImage = '".$content."' WHERE userID = ".userID;
$result = mysql_query($sql) or die (mysql_error());

When I download the files from phpmyadmin after upload they are saved as .bin files, but can be viewed normally. I'm not sure if this is correct or not. My code to display the images is as follows:

HTML:

<?php echo '<img src ="showPic.php?q='.$_SESSION['profile'].'"/>'; ?>

PHP:

if (!empty($_GET['profile']) && is_numeric($_GET['profile']))
{
  $con = mysql_connect("localhost", "root", "");
  $mysql_select_db("projectDB");
  $sql = "SELECT profileImage FROM tbUsers WHERE userID = ". $_GET['profile'];
  $result = mysql_query($sql) or die (mysql_error());

  header('Content-type: image/jpeg');
  $row = mysql_fetch_object($result);
  echo $row['image_data'];
}

I am unsure if I am attempting to display the image in the correct way, any help (corrections/alternative solutions) would be greatly appreciated :)

You can do this :

if (!empty($_GET['profile']) && is_numeric($_GET['profile']))
{
  $con = mysql_connect("localhost", "root", "");
  $mysql_select_db("projectDB");
  $sql = "SELECT profileImage FROM tbUsers WHERE userID = ". $_GET['profile'];
  $result = mysql_query($sql) or die (mysql_error());

  $content = mysql_result($result,0,"file_content");
  $name = mysql_result($result,0,"file_name");
  $type = mysql_result($result,0,"file_type");
  $size = mysql_result($result,0,"file_size");
  header("Content-type: $type");

  echo $content

}

Note : You should have these column in you table where you save your BLOB data

file_name = for save filename

$_FILES['file']['name']

file_type = for save file type

$_FILES['file']['type']

file_size = for save file size

$_FILES['file']['size']