图片存储与浏览一例(Linux+Apache+PHP+MySQL)


Posted in PHP onOctober 09, 2006

注意本程序使用的表结构为:
    use test;
    create table image(
                       id int unsigned auto_increment primary key,
                       description text,
                       filename varchar(50),
                       filesize int,
                       filetype varchar(50),
                       filedata longblob
                      );
*/

//?cmd={read|list|form|store}

//检查cmd参数的合法性
switch($cmd){
   case 'read':
      break;
   case 'list':
      break;
   case 'form':
      break;
   Case 'store':
      break;
   default:
      $cmd = 'list';
      break;
}

switch($cmd){
   case 'read':
      //?cmd=read&id={}
      //读一个图片
      $server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
      mysql_select_db("test",$server) or die("无法连接数据库");
      $sql = "select filetype,filedata from image where id='$id'";
      $rst = mysql_query($sql,$server) or die("$sql查询出错");
      if($row=mysql_fetch_row($rst)){
         header("Content-Type:" . $row[0]);
         echo $row[1];
      }
      else{
         echo "没有找到该记录";
      }
      mysql_free_result($rst);
      mysql_close($server) or die("无法与数据库服务器断开连接");
      break;
   case 'list':
      //?cmd=list
      //显示所有图片
      echo '<html>';
      echo '<head><title>图片存储与浏览一例</title></head>';
      echo '<body>';
      echo '<a href="' . $PHP_SELF . '?cmd=list">显示所有图片</a>';
      echo "    ";
      echo '<a href="' . $PHP_SELF . '?cmd=form">上传图片</a>';
      $server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
      mysql_select_db("test",$server) or die("无法连接数据库");
      $sql = "select id,description,filename,filetype,filesize from image";
      $rst = mysql_query($sql,$server) or die("$sql查询出错");
      while($row=mysql_fetch_row($rst)){
         echo "<hr>";
         echo "描述:" . $row[1] . "<br>";
         echo "文件名:" . $row[2] . "<br>";
         echo "类型:" . $row[3] . "<br>";
         echo "大小:" . $row[4] . "<br>";
         echo '<img src="' . $PHP_SELF . '?cmd=read&id=' . $row[0] . '">';
      }
      mysql_free_result($rst);
      mysql_close($server) or die("无法与数据库服务器断开连接");
      echo '</body>';
      echo '</html>';
      break;
   case 'form':
?>

<html>
<head><title>图片存储与浏览一例</title></head>
<body>
<form action="<?echo $PHP_SELF;?>?cmd=store" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
描述:<br>
<textarea name="description" rows="5" cols="100"></textarea><br>
文件:<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
</body>
</html>

<?
      break;
   case 'store':
      //?cmd=store&description={}&file={}&file_size={}&file_type={}&file_name={}
      //存储图片
      echo '<html>';
      echo '<head><title>图片存储与浏览一例</title></head>';
      echo '<body>';
      echo '<a href="' . $PHP_SELF . '?cmd=list">显示所有图片</a>';
      echo "    ";
      echo '<a href="' . $PHP_SELF . '?cmd=form">上传图片</a>';
      $server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
      mysql_select_db("test",$server) or die("无法连接数据库");
      $data = addslashes(fread(fopen($file,"r"),filesize($file)));
      $sql = "insert into image(description,filename,filetype,filesize,filedata)
              values('$description','" . basename($file_name) . "','$file_type',$file_size,'$data')";
      mysql_query($sql,$server) or die("$sql执行出错");
      $id = mysql_insert_id();
      echo "<hr>你上传的图片效果:<br>";
      echo '<img src="' . $PHP_SELF . '?cmd=read&id=' . $id . '">';
      mysql_close($server) or die("无法与数据库服务器断开连接");
      echo '</body>';
      echo '</html>';
      break;
}
?>

PHP 相关文章推荐
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
Apr 28 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
smarty高级特性之过滤器的使用方法
Dec 25 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
PHP工厂模式简单实现方法示例
May 23 PHP
PHP实现图片压缩
Sep 09 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
PHP+javascript液晶时钟
Oct 09 #PHP
一个分页的论坛
Oct 09 #PHP
一个简易需要注册的留言版程序
Oct 09 #PHP
使用数据库保存session的方法
Oct 09 #PHP
COM in PHP (winows only)
Oct 09 #PHP
Banner程序
Oct 09 #PHP
下载文件的点击数回填
Oct 09 #PHP
You might like
php生成短域名函数
2015/03/23 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
JavaScript中对循环语句的优化技巧深入探讨
2014/06/06 Javascript
jquery常用操作小结
2014/07/21 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
Angularjs 基础入门
2014/12/26 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
webpack构建换肤功能的思路详解
2017/11/27 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
通过实例学习Python Excel操作
2020/01/06 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
为什么python比较流行
2020/06/19 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
教师批评与自我批评范文
2014/10/15 职场文书
大学生个人学习总结
2015/02/15 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
关于JavaScript轮播图的实现
2021/11/20 Javascript
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS
Java对文件的读写操作方法
2022/04/29 Java/Android