php上传图片到数据库 php把图片上传到数据库并显示
大家好,感谢邀请,今天来为大家分享一下php上传图片到数据库的问题,以及和php把图片上传到数据库并显示的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
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 上传图片 存入数据库
代码示例
upload.htm
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="max_file_size" value="100000">
文件名:<input name="filename"><br>
文件:<input name="userfile" type="file"><br>
<input type="submit" value="上传文件">
</form>
upload.php
<?
copy($userfile,$_POST['filename']);
echo$userfile."-用户上传到服务器上的文件临时存放的名称<br>";
echo$userfile_name."-在用户机器上该文件的原始名称<br>";
echo$userfile_size."-上传文件的实际字节数<br>";
echo$userfile_type."-如果用户的浏览器提供了这个信息的话,它表示mime的类型。例如image/gif<br>";
?>
<a rel="external nofollow" href="upload.htm">继续上传</a>
很简单,关键的只有一句copy就搞定了,存入数据库嘛,也很简单。
你都不说是啥子数据库。唉!其实光要代码在我以前的论坛中都是不允许的。
php中如何调用数据库中的图片并且显示到页面
php是采用二进制形式存储图片及读取显示的,首先通过代码创建数据表,然后上传图片服务器再通过浏览器显示,具体编程代码举例:
1、首先需要创建数据表,具体代码如下图所示。
2、然后写上传图片到服务器的页面 upimage.html用来将图片上传数据库,如下图所示代码。
3、处理图片上传的php upimage.php文件,如下图所示图片已储存到数据库。
4、显示图片的php getimage.php文件,为了看一下效果提前把ID写入代码。
5、预览网站从数据库中提取了图片,并显示到页面上。
关于本次php上传图片到数据库和php把图片上传到数据库并显示的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。