图片存储与浏览一例(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实现Socket服务器的代码
Apr 03 PHP
pdo中使用参数化查询sql
Aug 11 PHP
如何使用PHP计算上一个月的今天
May 23 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 PHP
Thinkphp关闭缓存的方法
Jun 26 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
PHP+redis实现的购物车单例类示例
Feb 02 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
Laravel监听数据库访问,打印SQL的例子
Oct 24 PHP
如何在PHP环境中使用ProtoBuf数据格式
Jun 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
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
python ip正则式
2009/05/07 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
Html5 localStorage入门教程
2018/04/26 HTML / CSS
汽车工程专业应届生求职信
2013/10/19 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
2014年计生工作总结
2014/11/21 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers