>  기사  >  백엔드 개발  >  PHP를 통해 이미지를 업로드하고 데이터베이스에 저장하는 예

PHP를 통해 이미지를 업로드하고 데이터베이스에 저장하는 예

jacklove
jacklove원래의
2018-06-09 11:27:096865검색

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(&#39;demo&#39;,$conn) or die(mysql_error());
// 判断action
$action = isset($_REQUEST[&#39;action&#39;])? $_REQUEST[&#39;action&#39;] : &#39;&#39;;
// 上传图片
if($action==&#39;add&#39;){
    $image = mysql_escape_string(file_get_contents($_FILES[&#39;photo&#39;][&#39;tmp_name&#39;]));
    $type = $_FILES[&#39;photo&#39;][&#39;type&#39;];
    $sqlstr = "insert into photo(type,binarydata) values(&#39;".$type."&#39;,&#39;".$image."&#39;)";
    @mysql_query($sqlstr) or die(mysql_error());
    header(&#39;location:upload_image_todb.php&#39;);
    exit();
// 显示图片
}elseif($action==&#39;show&#39;){
    $id = isset($_GET[&#39;id&#39;])? intval($_GET[&#39;id&#39;]) : 0;
    $sqlstr = "select * from photo where id=$id";
    $query = mysql_query($sqlstr) or die(mysql_error());
    
    $thread = mysql_fetch_assoc($query);
    
    if($thread){
        header(&#39;content-type:&#39;.$thread[&#39;type&#39;]);
        echo $thread[&#39;binarydata&#39;];
        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 &#39;<p><img src="upload_image_todb.php?action=show&id=&#39;.$val[&#39;id&#39;].&#39;&t=&#39;.time().&#39;" width="150"></p>&#39;;
    }
?>
 </body>
</html>
<?php
}
?>


이 글에서는 PHP를 통해 이미지를 업로드하고 데이터베이스에 저장하는 예를 설명합니다. 더 많은 관련 콘텐츠를 보려면 결제하세요. PHP 중국어 웹사이트에 주목하세요.

관련 추천:

php를 통해 스트리밍 파일을 보내고 받는 방법

php를 통해 사진을 부분적으로 모자이크하는 방법

php를 통해 파일 MIME 형식을 얻는 방법 설명

위 내용은 PHP를 통해 이미지를 업로드하고 데이터베이스에 저장하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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