图片存储与浏览一例(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自动更新新闻DIY
Oct 09 PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
php建立Ftp连接的方法
Mar 07 PHP
详细解读PHP中接口的应用
Aug 12 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 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定时执行任务设置详解
2015/02/06 PHP
php实现的mongodb操作类
2015/05/28 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
Python实现豆瓣图片下载的方法
2015/05/25 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
工程管理专业毕业生自荐信
2014/01/24 职场文书
有趣的广告词
2014/03/18 职场文书
和睦家庭事迹
2014/05/14 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
社会工作专业求职信
2014/07/15 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
2014年业务工作总结
2014/11/17 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL