把图片上传到数据库然后显示一般的做法是专门写一个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><?phpdate_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 图片上传教程

更多相关文章

  1. 教你用php将二维码和文字结合到一个背景图片上!
  2. 手把手教你用php实现图片上传功能
  3. php上传多张图片时,选择图片后即可预览的问题
  4. PHP实现图片防盗链破解操作方法【解决图片防盗链问题/反向代理】
  5. 详解php版阿里云OSS图片上传类
  6. PHP连接MySQL数据库操作实现
  7. 掌握PHP语言对接抖音快手小红书视频/图片去水印API接口源码
  8. 关于PHP CURL上传二进制流图片
  9. PHP读取Excel图片对象,并保存替换为相对路径

随机推荐

  1. Android中WebView加载网页设置进度条
  2. Android—将Bitmap图片保存到SD卡目录下
  3. android Intent.FLAG大全
  4. Android设置Listview每个item的间距
  5. Android(安卓)通讯录学习笔记之——调用
  6. Android(安卓)限制启动应用最大使用内存,
  7. android repo/git server 建立过程
  8. ImageView.setScaleType(ImageView.ScaleT
  9. Android之应用中执行Linux命令
  10. Android开发经验总结