图片存储与浏览一例(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项目打包方法
Feb 18 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
php计算税后工资的方法
Jul 28 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
详解PHP Swoole与TCP三次握手
May 27 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 什么是PEAR?(第三篇)
2009/03/19 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
JS判断数组那点事
2017/10/10 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
Python IDLE清空窗口的实例
2018/06/25 Python
python 常用的基础函数
2018/07/10 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Python3 元组tuple入门基础
2020/02/09 Python
多个python文件调用logging模块报错误
2020/02/12 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
无刑事犯罪记录证明范本
2014/09/29 职场文书
授权委托书
2015/01/28 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang