微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

问题详情:

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

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

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

<!DOCTYPE html>
<html>
<head>
  <Meta http-equiv=Content-Type content=html/text;charset=utf-8/>
</head>
<body>
<form action=#  name=form method=post enctype=multipart/form-data>
<p>
<input type=file name=img value=选择上传文件/>
</p>
<input type=submit value=上传/>
</form>
</body>
</html>
<?PHP
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 <center><img style='width:1000px;' src='$img_name'>
   <p>
   <a href='img_uploading.PHP'>重新上传</a></p></center>;
}else{
     echo 上传失败; 
}
}else{ 
echo 不是图片类型;
}
}
?>

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐