图片存储与浏览一例(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 相关文章推荐
对Session和Cookie的区分与解释
Mar 16 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
php输出图像的方法实例分析
Feb 16 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 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使用递归计算文件夹大小
2014/12/24 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
php编程每天必学之表单验证
2016/03/01 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
Javascript Throttle &amp; Debounce应用介绍
2013/03/19 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
python安装本地whl的实例步骤
2019/10/12 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
办公室驾驶员岗位职责
2013/11/15 职场文书
植树造林的宣传标语
2014/06/23 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技