>  기사  >  백엔드 개발  >  이미지를 업로드하고 이를 Database_php에 저장하는 PHP 방법 팁

이미지를 업로드하고 이를 Database_php에 저장하는 PHP 방법 팁

WBOY
WBOY원래의
2016-05-16 20:23:301008검색

PHP는 이미지를 업로드하고 데이터베이스에 저장하는 방식을 구현합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

PHP는 일반적으로 move_uploaded_file 메소드를 사용하여 이미지를 서버에 저장하는 방식으로 이미지를 업로드합니다. 그러나 웹사이트에 여러 서버가 있는 경우 일반적인 사용을 위해서는 모든 서버에 이미지를 게시해야 합니다(이미지 서버를 사용하는 경우 제외).
이미지 데이터를 데이터베이스에 저장하면 여러 서버에서 파일을 공유하여 공간을 절약할 수 있습니다.

우선 이미지 파일은 바이너리 데이터이므로 해당 바이너리 데이터를 mysql 데이터베이스에 저장해야 합니다.
mysql 데이터베이스는 대용량 데이터를 저장하기 위한 BLOB 유형을 제공합니다. BLOB는 다양한 크기의 데이터를 수용할 수 있는 바이너리 객체입니다.

BLOB는 4가지 종류가 있으며, 최대 저장되는 정보량을 제외하면 동일합니다. 필요에 따라 다양한 유형을 사용할 수 있습니다.

TinyBlob 최대 255B
블롭 맥스 65K
MediumBlob 최대 16M
LongBlob 최대 4G

이미지 데이터를 저장하는 데 사용되는 데이터 테이블 사진의 구조는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
CREATE TABLE `photo`(
`id` int(10) unsigned NOT NULL auto_increment,
`type` varchar(100) NOT NULL,
`binarydata` Mediumblob NOT NULL,
기본 키(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

upload_image_todb.php:

코드 복사 코드는 다음과 같습니다.
// 连接数据库 
$conn=@mysql_connect("localhost","root","") 또는 die(mysql_error()); 
@mysql_select_db('demo',$conn) 또는 die(mysql_error()); 

// 判断액션
$action = isset($_REQUEST['action'])? $_REQUEST['작업'] : ''; 

// 상위 사진 
if($action=='추가'){ 
    $image = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name'])); 
    $type = $_FILES['사진']['유형']; 
    $sqlstr = "photo(type,binarydata) 값에 삽입('".$type."','".$image."')"; 
    @mysql_query($sqlstr) 또는 die(mysql_error()); 
    헤더('위치:upload_image_todb.php'); 
    출구(); 
// 显示图그림 
}elseif($action=='표시'){ 
    $id = isset($_GET['id'])? intval($_GET['id']) : 0; 
    $sqlstr = "id=$id인 사진에서 *를 선택하세요"; 
    $query = mysql_query($sqlstr) 또는 die(mysql_error()); 
    $thread = mysql_fetch_assoc($query); 
    if($스레드){ 
        header('content-type:'.$thread['type']); 
        echo $thread['바이너리데이터']; 
        출구(); 
    } 
}else{ 
// 显示图文列表及上传表单 
?> 
 
 
 <머리> 
   
  DB 데모에 이미지 업로드  
  
 
 <본문> 
 

 
 

사진:

 
 

 
   
 
    $sqlstr = "ID 설명에 따른 사진 순서에서 *를 선택하세요"; 
    $query = mysql_query($sqlstr) 또는 die(mysql_error()); 
    $결과 = 배열(); 
    while($thread=mysql_fetch_assoc($query)){ 
        $result[] = $스레드; 
    } 
    foreach($result는 $val로 표시됨){ 
        echo '

< /p>'; 
    } 
?> 
 
 

?>

希望本文所述对大家程序设计有所帮助。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.