php上传图片无法打开,php上传图片无法显示的问题

把图片上传到数据库然后显示一般的做法是专门写一个php页面,通过GET或POST方法获取图片的id、查询数据库、header函数输出图片类型、再echo图片数据就可以了。

241d6522e85a03c998fa5db754eea3a2.png

问题详情:

php可以通过表单上传文件到数据库的blob字段,然后输出,其实更好的做法是把文件保存到服务器,只在数据库中记录相关信息就可以了,但是不是任何时候都能照自己的想法去做。这不,我只能上传图片到数据库然后显示在网页,结果却遇到了问题:图片无法显示。

把图片上传到数据库然后显示一般的做法是专门写一个php页面,通过GET或POST方法获取图片的id、查询数据库、header函数输出图片类型、再echo图片数据就可以了,这个方法是没有问题的,可是我却出了问题,图片总是无法显示。

在网上查询了很多资料,试了很多方法,都不行,最后在stack overflow上看到一个回答,由于是英文就不原句引用了,内容是header这个函数有些特殊,要小心不要在header位置前有其他的header或别的什么内容,结果就是这个问题,由于我写了一个php文件包含了一些通用函数,其中也有javascript的函数,我在输出图片的php文件把require语句去掉就行了,图片就能够输出了。

date_default_timezone_set("PRC"); //设置时区

if(count($_FILES)>0){

$sort = array("image/jpeg","image/jpg","image/gif","image/pdg");

//判断是否是图片类型

if(in_array($_FILES['img']['type'],$sort)){

$img = "img"; //获取上传到的文件夹位置

//判断文件夹是否存在 ,如果不存在创建一个

if(!file_exists($img)){

mkdir("$img",0700); //0700最高权限

}

$time=date("Y_m_d_H_i_s"); //获取当前时间

$file_name = explode(".",$_FILES['img']['name']); //$_FILES['img']['name'] 上传文件的名称 explode字符串打断转字符串

$file_name[0]=$time;

$name = implode(".",$file_name); //implode 把数组拼接成字符串

$img_name = "img/".$name;

if(move_uploaded_file($_FILES['img']['tmp_name'],$img_name)){ //move_uploaded_file 移动文件

echo "

%24img_name

重新上传

";

}else{

echo "上传失败";

}

}else{

echo "不是图片类型";

}

}

?>

不得不说编程有时候是件很让人头疼的事,仅仅因为一个语句,却花了我一天时间去尝试各种方法;可是编程又是件有意思的事,因为在解决了问题,程序成功运行的时刻,那种成就感、满足感真的让人难以忘怀。

更多学习教程:PHP 图片上传教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值