图片存储与浏览一例(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框架Phpbean说明
Jan 10 PHP
php自动适应范围的分页代码
Aug 05 PHP
PHP 采集心得技巧
May 15 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
无阻塞加载脚本分析[全]
2011/01/20 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
微信小程序实现简单表格
2019/02/14 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
小程序input数据双向绑定实现方法
2019/10/17 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
Python中查看文件名和文件路径
2017/03/31 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
马来西亚网上购物:Youbeli
2018/03/30 全球购物
KOHLER科勒美国官网:国际著名卫浴橱柜领先品牌
2020/06/27 全球购物
给校长的建议书
2014/03/12 职场文书
英语系毕业生求职信
2014/07/13 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
群众路线领导对照材料
2014/08/23 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书