php上传图片没法显示的题目
把图片上传到数据库然后显示一样的做法是专门写一个php页面,通过GET或POST办法猎取图片的id、查询数据库、header函数输出图片类型、再echo图片数据就可以了。
问题详情:
php可以通过表单上传文件到数据库的blob
字段,然后输出,其实更好的做法是把文件留存到效劳器,只在数据库中记载相关信息就可以了,但是不是任何时候都能照本人的设法去做。这不,我只能上传图片到数据库然后显示在网页,结果却碰到了问题:图片没法显示。
把图片上传到数据库然后显示一样的做法是专门写一个php页面,通过GET
或POST
办法猎取图片的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 图片上传教程
以上就是php上传图片没法显示的问题的具体内容,更多请关注百分百源码网其它相关文章!