RHEL5上对mysql进行图片等文件存储例子

1、环境设置

   php.ini中设upload_max_filesize=?M

   my.cnf中设max_allowed_packet=?M

2、PHP例子

<?php

//This is a stand alone example, do include this in anything.

//MySQL credentials (fill these in)
$host = 'localhost';
$user = 'username';
$pass = 'password';
$db = 'dbname';

$con = mysql_connect( $host,$user,$pass ) or die( 'Error: Could not connect' );
mysql_select_db( $db ) or die( 'Error: Unable to select database' );

$table =<<<SQL
CREATE TABLE IF NOT EXISTS `uploaded_images` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(30) NOT NULL,
`type` VARCHAR(30) NOT NULL,
`size` INT NOT NULL,
`content` MEDIUMBLOB NOT NULL,
PRIMARY KEY(`id`)
);
SQL;
$query = mysql_query( $table,$con );

$case = $_GET['case'];

switch( $case ) {
case "upload":
if ( isset( $_POST['submit'] ) && count( $_FILES ) > 0 ) {
if ( isset( $_FILES['image']['name'] ) && $_FILES['image']['name'] !== '' ) {
$fileName = basename( $_FILES['image']['name'] );
$fileType = $_FILES['image']['type'];
$tempFile = $_FILES['image']['tmp_name'];
$fileSize = filesize( $tempFile );
$open = fopen( $tempFile,'r' );
$data = fread( $open,$fileSize );
fclose( $open );
$sql = "INSERT INTO `uploaded_images` (`name`,`type`,`size`,`content`) VALUES ('{$fileName}','{$fileType}','{$fileSize}','{$data}')";
$query = mysql_query( $sql,$con );
}
}
$url = $_SERVER['PHP_SELF'];
echo <<<HTML
<form action="$url?case=upload" method="post" enctype="multipart/form-data">
<input type="file" name="image" /><br />
<input type="submit" name="submit" value="Upload" />
</form>
HTML;
break;
case "view":
if ( isset( $_GET['id'] ) ) {
$id = mysql_real_escape_string( $_GET['id'] );
if ( is_numeric( $id ) ) {
$sql = "SELECT `type`,`content` FROM `uploaded_images` WHERE `id` = {$id}";
$query = mysql_query( $sql,$con );
$total = mysql_num_rows( $query );
if ( $total == 1 ) {
list( $type,$data ) = mysql_fetch_row( $query );
header( "Content-type: {$type}" );
echo $data;
exit;
}
}
}
break;
}

?>

上传文件时使用filename.php?case=upload,查看时使用filename.php?case=view&id=《ID号》

读者可以根据需要自行修改更强的功能。
 

 

转载于:https://www.cnblogs.com/weichaohan/archive/2008/11/28/1343211.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值