图片存储与浏览一例(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 str_pad 函数使用详解
Jan 13 PHP
php+mysql事务rollback&amp;commit示例
Feb 08 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
Jul 03 PHP
PHP合并静态文件详解
Nov 14 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
Yii框架页面渲染操作实例详解
Jul 19 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
JS中==与===操作符的比较
2009/03/21 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
javascript中Object使用详解
2015/01/26 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
Python文本相似性计算之编辑距离详解
2016/11/28 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python将string转换到float的实例方法
2019/07/29 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
python实现简单的学生管理系统
2021/02/22 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
导游词300字
2015/02/13 职场文书
小学少先队活动总结
2015/05/08 职场文书
小学生安全保证书
2015/05/09 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers