php图片数据显示 php中为什么图片显示不出来

PHP数据库图片显示问题

你好,很高兴问您作答。弄明白这几点:

专注于为中小企业提供网站制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业永新免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

如果用户上传了多张图片,你的存储方式是以逗号将他们的地址区分的吗。

你需要显示的多张图片是第一张还是任意一张。

欢迎追问哦~

PHP实现上传图片到数据库并显示输出的方法

本文实例讲述了PHP实现上传图片到数据库并显示输出的方法。分享给大家供大家参考,具体如下:

1.

创建数据表

CREATE

TABLE

ccs_image

(

id

int(4)

unsigned

NOT

NULL

auto_increment,

description

varchar(250)

default

NULL,

bin_data

longblob,

filename

varchar(50)

default

NULL,

filesize

varchar(50)

default

NULL,

filetype

varchar(50)

default

NULL,

PRIMARY

KEY

(id)

)engine=myisam

DEFAULT

charset=utf8

2.

用于上传图片到服务器的页面

upimage.html

!doctype

html

html

lang="en"

head

meta

charset="UTF-8"

meta

name="viewport"

content="width=device-width,

user-scalable=no,

initial-scale=1.0,

maximum-scale=1.0,

minimum-scale=1.0"

meta

http-equiv="X-UA-Compatible"

content="ie=edge"

style

type="text/css"

*{margin:

1%}

/style

titleDocument/title

/head

body

form

method="post"

action="upimage.php"

enctype="multipart/form-data"

描述:

input

type="text"

name="form_description"

size="40"

input

type="hidden"

name="MAX_FILE_SIZE"

value="1000000"

br

上传文件到数据库:

input

type="file"

name="form_data"

size="40"br

input

type="submit"

name="submit"

value="submit"

/form

/body

/html

3.

处理图片上传的php

upimage.php

?php

if

(isset($_POST['submit']))

{

$form_description

=

$_POST['form_description'];

$form_data_name

=

$_FILES['form_data']['name'];

$form_data_size

=

$_FILES['form_data']['size'];

$form_data_type

=

$_FILES['form_data']['type'];

$form_data

=

$_FILES['form_data']['tmp_name'];

$dsn

=

'mysql:dbname=test;host=localhost';

$pdo

=

new

PDO($dsn,

'root',

'root');

$data

=

addslashes(fread(fopen($form_data,

"r"),

filesize($form_data)));

//echo

"mysqlPicture=".$data;

$result

=

$pdo-query("INSERT

INTO

ccs_image

(description,bin_data,filename,filesize,filetype)

VALUES

('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");

if

($result)

{

echo

"图片已存储到数据库";

}

else

{

echo

"请求失败,请重试";

注:图片是以二进制blob形式存进数据库的,像这样

4.

显示图片的php

getimage.php

?php

$id

=2;//

$_GET['id'];

为简洁,直接将id写上了,正常应该是通过用户填入的id获取的

$dsn='mysql:dbname=test;host=localhost';

$pdo=new

PDO($dsn,'root','root');

$query

=

"select

bin_data,filetype

from

ccs_image

where

id=2";

$result

=

$pdo-query($query);

$result=$result-fetchAll(2);

//

var_dump($result);

$data

=

$result[0]['bin_data'];

$type

=

$result[0]['filetype'];

Header(

"Content-type:

$type");

echo

$data;

到浏览器查看已经上传的图片,看是否可以显示

是没有问题的,证明图片已经以二进制的形式存储到数据库了

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:php实现上传图片保存到数据库的方法php上传图片存入数据库示例分享php上传图片到指定位置路径保存到数据库的具体实现php中如何将图片储存在数据库里php下将图片以二进制存入mysql数据库中并显示的实现代码php

从数据库提取二进制图片的处理代码php将图片保存入mysql数据库失败的解决方法php将图片文件转换成二进制输出的方法php图片的二进制转换实现方法

php中如何调用数据库中的图片并且显示到页面

php是采用二进制形式存储图片及读取显示的,首先通过代码创建数据表,然后上传图片服务器再通过浏览器显示,具体编程代码举例:

1、首先需要创建数据表,具体代码如下图所示。

2、然后写上传图片到服务器的页面 upimage.html用来将图片上传数据库,如下图所示代码。

3、处理图片上传的php upimage.php文件,如下图所示图片已储存到数据库。

4、显示图片的php getimage.php文件,为了看一下效果提前把ID写入代码。

5、预览网站从数据库中提取了图片,并显示到页面上。

php把图片上传到数据库并显示

blob类型

?php

/*******************************************************

** 文件名:upload_file.php

** Copyright @ 2009

** 创建人:tabor

** 日期:2009年7月24日 8:00

** 修改人:

** 日期:

** 描述:文件上传操作以及对图片文件的处理

** 版本:

********************************************************/

class upload_file {

//保存的文件名

public $file_name;

//系统中上传文件的临时存放路径

public $file_tmp_name;

//文件大小

public $file_size;

//完整的文件类型

public $full_file_type;

//文件类型

public $file_type;

//文件是否覆盖

public $override = 1;

//文件的保存路径

public $file_save_path = '';

//上传文件大小的最大值 单位是字节 2M

public public $file_max_size = 210000000;

//public public $file_max_size = 102400;

//构造函数

function __construct($file_name = '', $file_tmp_name = '', $full_file_type = '', $file_size = '', $file_save_path = '') {

$this-file_name = $file_name;

$this-file_tmp_name = $file_tmp_name;

$this-full_file_type = $full_file_type;

$this-file_size = $file_size;

$this-file_save_path = $file_save_path;

}

//取得文件的后缀名,即文件类型

function get_file_type() {

$type_array = explode('.', $this-file_name);

return $type_array[count($type_array)-1];

}

//判断文件的大小

function check_size() {

if($this-file_size $this-file_max_size) {

return false;

}

return true;

}

//取得文件的大小

function get_size() {

return intval($this-file_size/1024);

}

//上传图片 格式 jpg,png,gif,pjpeg

function check_upload_pic() {

$type = $this-get_file_type();

$type_array = array('jpg', 'png', 'gif', 'bmp');

foreach($type_array as $value) {

if($value = $type) {

return true;

}

return false;

}

}

//上传文件 格式 zip rar

function check_upload_file() {

$type = $this-get_file_type();

$type_array = array('jpg','gif','bmp','png');

foreach($type_array as $value) {

if($value == $type) {

return true;

}

return false;

}

}

//判断文件是否存在

function check_exist() {

$file = $this-file_save_path.$this-file_name;

return file_exists($file);

}

//上传文件

function move_upfile() {

if(!$this-check_upload_pic()) {

echo "ok1";

return false;

}

else {

if(!$this-check_size()) {

echo "ok2";

return false;

}

else {

// if($this-check_exist()) {

// echo "该文件已存在";

// return false;

// }

// else {

$path = $this-file_save_path.$this-file_name;

if(move_uploaded_file($this-file_tmp_name, $path)) {

return true;

}

else {

return false;

}

// }

}

}

}

//将上传的图片打水印

/**

* $water_pic_name 将要被打水印的目标图片

* $water_word 水印文字

* $path 将来生成水印图片的存放路径

*/

function create_water_pic($water_word) {

$type = $this-get_file_type();

$filename = $this-file_save_path.$this-file_name;

switch($type) {

case 'jpg':

header("content-type:image/jpeg"); //定义输出图像的类型

$im = imagecreatefromjpeg($filename); //载入图片

break;

case 'png':

header("content-type:image/png");

$im = imagecreatefrompng($filename);

break;

case 'gif':

header("content-type:image/gif");

$im = imagecreatefromgif($filename);

break;

case 'bmp':

header("content-type:image/xbm"); //上传bmp格式存在问题

$im = imagecreatefromxbm($filename); //无法打水印

break;

default: {

echo "文件格式不符";

}

}

$textcolor = imagecolorallocate($im, 56, 73,136); //设定字体的颜色

$font = "simhei.ttf"; //定义字体

$word = $water_word; //水印字符

$x = imagesx($im); //获取图片的宽度

$y = imagesy($im); //获取文件的高度

$position_x = $x-80;

$position_y = $y-10;

$str = iconv('gbk', 'utf-8', $word); //将中文文字显示出来的编码过程

imagettftext($im, 20, 0, $position_x, $position_y, $textcolor, $font, $str);

//imagejpeg($im); //显示图片

$new = $this-file_save_path.'water'.$this-file_name; //生成新的文件名

switch($type) {

case 'jpg':

imagejpeg($im, $new); //生成jpg图像

break;

case 'png':

imagepng($im, $new); //生成png图像

break;

case 'gif':

imagegif($im, $new); //生成gif图像

break;

case 'bmp':

imagexbm($im, $new); //生成bmp图像 该格式的文件处理有问题

break;

default: {

echo "文件格式不符";

}

}

imagedestroy($im); //结束图形,释放内存空间*/

}

//生成缩略图

/**

* $pic 图片名 包括其扩展名,但不包括路径

* $width 将来生成缩略图的宽度

* $height 将来生成缩略图的高度

* $path 生成缩略图的存放路径

*/

function create_thumbnail($width, $height) {

$type = $this-get_file_type();

$filename = $this-file_save_path.$this-file_name;

$img = getimagesize($filename);

//print_r($img);

//die();

switch($img[2]) {

case 1:

header("content-type:image/gif"); //定义输出图像的类型

$im = imagecreatefromgif($filename); //载入图片

break;

case 2:

header("content-type:image/jpeg");

$im = imagecreatefromjpeg($filename);

break;

case 3:

header("content-type:image/png");

$im = imagecreatefrompng($filename);

break;

case 6:

header("content-type:image/xbm"); //bmp格式存在问题

$im = imagecreatefromxbm($filename); //无法打水印

break;

default: {

echo "文件格式不符";

}

}

$thumb = imagecreatetruecolor($width, $height); //创建一个新的空白的面板

$color = imagecolorallocate($im, 200, 255, 100); //调色板

/*bool imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )

imagecopyresized() 将一幅图像中的一块正方形区域拷贝到另一个图像中。dst_image 和 src_image 分别是目标图像和源图像的标识符。

*/

imagecopyresized($thumb, $im, 0, 0, 0, 0, $width, $height, $img[0], $img[1]);

//imagejpeg($thumb);

$thumb_path = $this-file_save_path."thumbnail/".$this-file_name;

switch($img[2]) {

case 1:

imagejpeg($thumb, $thumb_path);

break;

case 2:

imagegif($thumb, $thumb_path);

break;

case 3:

imagepng($thumb, $thumb_path);

break;

case 6:

imagexbm($thumb, $thumb_path);

break;

default: {

echo "文件格式不符";

}

}

}

}

?

前几天做的一个类,可以正常的使用,但还存在问题,仅供参考!忘对您有所帮助

PHP怎么显示出图片

不要用记事本直接编辑PHP文件,因为可能会存在bom头信息,导致图片不能正常显示,你可以自行百度bom头信息,建议使用编辑器notepad++,可以去除文件bom头,图片就会正常显示

PHP根据数据库中的图片路径怎么显示图片

补会图片路径就行了

比如,你存的图片路径是images/a.png

你的域名是:

你的images文件夹在项目的根目录下的public文件夹,则你的图片路径可以这样写:

/public/images/a.png

如果不是在同一域名下,则在前面添加一个域名:


网页名称:php图片数据显示 php中为什么图片显示不出来
文章位置:http://azwzsj.com/article/docojis.html