图片存储与浏览一例(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 07 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
tp5框架基于ajax实现异步删除图片的方法示例
Feb 10 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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
用header 发送cookie的php代码
2007/03/16 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
python数据分析数据标准化及离散化详解
2018/02/26 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
通过代码实例了解Python异常本质
2020/09/16 Python
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
岗位职责的构建方法
2014/02/01 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
领导干部对照检查材料
2014/08/24 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
个人委托书如何写
2014/09/25 职场文书
大学生党员个人总结
2015/02/13 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技