当前位置:首页 > PHP教程 > php上传下载 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-07-05 07:17:41 浏览: 评论:0 

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

问题详情:

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

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

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

  1. <!DOCTYPE html> 
  2.  
  3. <html> 
  4.  
  5. <head> 
  6.  
  7.   <meta http-equiv="Content-Type" content="html/text;charset=utf-8"/> 
  8.  
  9. </head> 
  10.  
  11. <body> 
  12.  
  13. <form action="#"  name="form" method="post" enctype="multipart/form-data"
  14.  
  15. <p> 
  16.  
  17. <input type="file" name="img" value="选择上传文件"/> 
  18.  
  19. </p> 
  20.  
  21. <input type="submit" value="上传"/> 
  22.  
  23. </form> 
  24.  
  25. </body> 
  26.  
  27. </html> 
  28.  
  29. <?php 
  30.  
  31. date_default_timezone_set("PRC");         //设置时区 
  32.  
  33. if(count($_FILES)>0){  
  34.  
  35. $sort = array("image/jpeg","image/jpg","image/gif","image/pdg"); 
  36.  
  37. //判断是否是图片类型 
  38.  
  39. if(in_array($_FILES['img']['type'],$sort)){  
  40.  
  41.  $img = "img";    //获取上传到的文件夹位置 
  42.  
  43. //判断文件夹是否存在 ,如果不存在创建一个 
  44.  
  45. if(!file_exists($img)){ 
  46.  
  47.    mkdir("$img",0700);        //0700最高权限 
  48.  
  49.  
  50. $time=date("Y_m_d_H_i_s");     //获取当前时间 
  51.  
  52. $file_name = explode(".",$_FILES['img']['name']);         //$_FILES['img']['name'] 上传文件的名称 explode字符串打断转字符串 
  53.  
  54. $file_name[0]=$time;  
  55.  
  56. $name = implode(".",$file_name);    //implode 把数组拼接成字符串 
  57.  
  58. $img_name = "img/".$name
  59.  
  60. if(move_uploaded_file($_FILES['img']['tmp_name'],$img_name)){   //move_uploaded_file 移动文件 
  61.  
  62.    echo "<center><img style='width:1000px;' src='$img_name'
  63.  
  64.    <p> 
  65.  
  66.    <a href='img_uploading.php'>重新上传</a></p></center>"; 
  67.  
  68. }else
  69.  
  70.      echo "上传失败";  
  71.  
  72.  
  73. }else{  
  74.  
  75. echo "不是图片类型"
  76.  
  77.  
  78.  
  79. ?> 

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

Tags: php上传图片无法显示

分享到: