图片存储与浏览一例(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 在线翻译函数代码
May 07 PHP
收集的二十一个实用便利的PHP函数代码
Apr 22 PHP
基于php无限分类的深入理解
Jun 02 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
php实现的用户查询类实例
Jun 18 PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
php使用yield对性能提升的测试实例分析
Sep 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
javascript判断非数字的简单例子
2013/07/18 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
Python实现一个简单的MySQL类
2015/01/07 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
python读取图片任意范围区域
2019/01/23 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
2014年党员整改措施
2014/10/24 职场文书
护士求职自荐信
2015/03/25 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
全陪导游词开场白
2015/05/29 职场文书
董事长新年致辞
2015/07/29 职场文书
施工安全责任协议书
2016/03/23 职场文书