php 사진을 업로드하고 데이터베이스에 저장 예시
php 사진을 업로드하려면 일반적으로 move_uploaded_file 메소드를 사용하여 서버에 저장합니다. 하지만 웹사이트에 여러 서버가 있는 경우 정상적인 사용을 위해서는 모든 서버에 사진을 게시해야 합니다(사진 서버를 사용하는 경우 제외)
사진 데이터가 데이터베이스에 저장되면 여러 서버 간에 파일 공유가 가능합니다. , 공간을 절약하세요.
우선 이미지 파일은 바이너리 데이터이므로 바이너리 데이터를 mysql 데이터베이스에 저장해야 합니다.
MySQL 데이터베이스는 대용량 데이터를 저장할 수 있는 BLOB 유형을 제공합니다. BLOB는 다양한 크기의 데이터를 수용할 수 있는 바이너리 개체입니다.
BLOB에는 4가지 종류가 있으며, 최대 저장되는 정보량을 제외하면 동일합니다. 필요에 따라 다양한 유형을 사용할 수 있습니다.
TinyBlob 최대 255B
Blob 최대 65K
MediumBlob 최대 16M
LongBlob 최대 4G
데이터 테이블photo, 사진 데이터를 저장하는 데 사용되며 구조는 다음과 같습니다.
CREATE TABLE `photo` ( `id` int(10) unsigned NOT NULL auto_increment, `type` varchar(100) NOT NULL, `binarydata` mediumblob NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
upload_image_todb.php
<?php // 连接数据库 $conn=@mysql_connect("localhost","root","") or die(mysql_error()); @mysql_select_db('demo',$conn) or die(mysql_error()); // 判断action $action = isset($_REQUEST['action'])? $_REQUEST['action'] : ''; // 上传图片 if($action=='add'){ $image = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name'])); $type = $_FILES['photo']['type']; $sqlstr = "insert into photo(type,binarydata) values('".$type."','".$image."')"; @mysql_query($sqlstr) or die(mysql_error()); header('location:upload_image_todb.php'); exit(); // 显示图片 }elseif($action=='show'){ $id = isset($_GET['id'])? intval($_GET['id']) : 0; $sqlstr = "select * from photo where id=$id"; $query = mysql_query($sqlstr) or die(mysql_error()); $thread = mysql_fetch_assoc($query); if($thread){ header('content-type:'.$thread['type']); echo $thread['binarydata']; exit(); } }else{ // 显示图片列表及上传表单 ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title> upload image to db demo </title> </head> <body> <form name="form1" method="post" action="upload_image_todb.php" enctype="multipart/form-data"> <p>图片:<input type="file" name="photo"></p> <p><input type="hidden" name="action" value="add"><input type="submit" name="b1" value="提交"></p> </form> <?php $sqlstr = "select * from photo order by id desc"; $query = mysql_query($sqlstr) or die(mysql_error()); $result = array(); while($thread=mysql_fetch_assoc($query)){ $result[] = $thread; } foreach($result as $val){ echo '<p><img src="upload_image_todb.php?action=show&id='.$val['id'].'&t='.time().'" width="150"></p>'; } ?> </body> </html> <?php } ?>
이 글에서는 PHP를 통해 이미지를 업로드하고 데이터베이스에 저장하는 예를 설명합니다. 더 많은 관련 콘텐츠를 보려면 결제하세요. PHP 중국어 웹사이트에 주목하세요.
관련 추천:
위 내용은 PHP를 통해 이미지를 업로드하고 데이터베이스에 저장하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!