图片存储与浏览一例(Linux+Apache+PHP+MySQL)

2000-12-20 10:35:42  作者
注重本程序使用的表结构为:
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%26amp;id={}
//读一个图片
$server = mysql_connect(%26quot;localhost%26quot;,%26quot;test%26quot;,%26quot;%26quot;) or die(%26quot;无法连接数据库服务器%26quot;);
mysql_select_db(%26quot;test%26quot;,$server) or die(%26quot;无法连接数据库%26quot;);
$sql = %26quot;select filetype,filedata from image where id='$id'%26quot;;
$rst = mysql_query($sql,$server) or die(%26quot;$sql查询出错%26quot;);
if($row=mysql_fetch_row($rst)){
header(%26quot;Content-Type:%26quot; . $row[0]);
echo $row[1];
}
else{
echo %26quot;没有找到该记录%26quot;;
}
mysql_free_result($rst);
mysql_close($server) or die(%26quot;无法与数据库服务器断开连接%26quot;);
break;
case 'list':
//?cmd=list
//显示所有图片
echo '%26lt;html%26gt;';
echo '%26lt;head%26gt;%26lt;title%26gt;图片存储与浏览一例%26lt;/title%26gt;%26lt;/head%26gt;';
echo '%26lt;body%26gt;';
echo '%26lt;a href=%26quot;' . $PHP_SELF . '?cmd=list%26quot;%26gt;显示所有图片%26lt;/a%26gt;';
echo %26quot;%26amp;nbsp;%26amp;nbsp;%26amp;nbsp;%26amp;nbsp;%26quot;;
echo '%26lt;a href=%26quot;' . $PHP_SELF . '?cmd=form%26quot;%26gt;上传图片%26lt;/a%26gt;';
$server = mysql_connect(%26quot;localhost%26quot;,%26quot;test%26quot;,%26quot;%26quot;) or die(%26quot;无法连接数据库服务器%26quot;);
mysql_select_db(%26quot;test%26quot;,$server) or die(%26quot;无法连接数据库%26quot;);
$sql = %26quot;select id,description,filename,filetype,filesize from image%26quot;;
$rst = mysql_query($sql,$server) or die(%26quot;$sql查询出错%26quot;);
while($row=mysql_fetch_row($rst)){
echo %26quot;%26lt;hr%26gt;%26quot;;
echo %26quot;描述:%26quot; . $row[1] . %26quot;%26lt;br%26gt;%26quot;;
echo %26quot;文件名:%26quot; . $row[2] . %26quot;%26lt;br%26gt;%26quot;;
echo %26quot;类型:%26quot; . $row[3] . %26quot;%26lt;br%26gt;%26quot;;
echo %26quot;大小:%26quot; . $row[4] . %26quot;%26lt;br%26gt;%26quot;;
echo '%26lt;img src=%26quot;' . $PHP_SELF . '?cmd=read%26amp;id=' . $row[0] . '%26quot;%26gt;';
}
mysql_free_result($rst);
mysql_close($server) or die(%26quot;无法与数据库服务器断开连接%26quot;);
echo '%26lt;/body%26gt;';
echo '%26lt;/html%26gt;';
break;
case 'form':
?%26gt;

%26lt;html%26gt;
%26lt;head%26gt;%26lt;title%26gt;图片存储与浏览一例%26lt;/title%26gt;%26lt;/head%26gt;
%26lt;body%26gt;
%26lt;form action=%26quot;%26lt;?echo $PHP_SELF;?%26gt;?cmd=store%26quot; method=%26quot;post%26quot; enctype=%26quot;multipart/form-data%26quot;%26gt;
%26lt;input type=%26quot;hidden%26quot; name=%26quot;MAX_FILE_SIZE%26quot; value=%26quot;2097152%26quot;%26gt;
描述:%26lt;br%26gt;
%26lt;textarea name=%26quot;description%26quot; rows=%26quot;5%26quot; cols=%26quot;100%26quot;%26gt;%26lt;/textarea%26gt;%26lt;br%26gt;
文件:%26lt;input type=%26quot;file%26quot; name=%26quot;file%26quot;%26gt;%26lt;br%26gt;
%26lt;input type=%26quot;submit%26quot; value=%26quot;上传%26quot;%26gt;
%26lt;/form%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;

%26lt;?
break;
case 'store':
//?cmd=store%26amp;description={}%26amp;file={}%26amp;file_size={}%26amp;file_type={}%26amp;file_name={}
//存储图片
echo '%26lt;html%26gt;';
echo '%26lt;head%26gt;%26lt;title%26gt;图片存储与浏览一例%26lt;/title%26gt;%26lt;/head%26gt;';
echo '%26lt;body%26gt;';
echo '%26lt;a href=%26quot;' . $PHP_SELF . '?cmd=list%26quot;%26gt;显示所有图片%26lt;/a%26gt;';
echo %26quot;%26amp;nbsp;%26amp;nbsp;%26amp;nbsp;%26amp;nbsp;%26quot;;
echo '%26lt;a href=%26quot;' . $PHP_SELF . '?cmd=form%26quot;%26gt;上传图片%26lt;/a%26gt;';
$server = mysql_connect(%26quot;localhost%26quot;,%26quot;test%26quot;,%26quot;%26quot;) or die(%26quot;无法连接数据库服务器%26quot;);
mysql_select_db(%26quot;test%26quot;,$server) or die(%26quot;无法连接数据库%26quot;);
$data = addslashes(fread(fopen($file,%26quot;r%26quot;),filesize($file)));
$sql = %26quot;insert into image(description,filename,filetype,filesize,filedata)
values('$description','%26quot; . basename($file_name) . %26quot;','$file_type',$file_size,'$data')%26quot;;
mysql_query($sql,$server) or die(%26quot;$sql执行出错%26quot;);
$id = mysql_insert_id();
echo %26quot;%26lt;hr%26gt;你上传的图片效果:%26lt;br%26gt;%26quot;;
echo '%26lt;img src=%26quot;' . $PHP_SELF . '?cmd=read%26amp;id=' . $id . '%26quot;%26gt;';
mysql_close($server) or die(%26quot;无法与数据库服务器断开连接%26quot;);
echo '%26lt;/body%26gt;';
echo '%26lt;/html%26gt;';
break;
}
?%26gt;