图片存储与浏览一例(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 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
PHP SEO优化之URL优化方法
Apr 21 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
php向js函数传参的几种方法
Aug 10 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
深入理解PHP变量的值类型和引用类型
Oct 21 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 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创建PDF中文文档
2006/10/09 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
javascript验证身份证号
2015/03/03 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
毕业生的自我鉴定
2013/10/29 职场文书
乱世佳人观后感
2015/06/08 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
HTML基本元素标签介绍
2022/02/28 HTML / CSS
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis