>  기사  >  백엔드 개발  >  PHP는 Blob을 사용하여 이미지 정보(소스 코드 포함)에 액세스합니다.

PHP는 Blob을 사용하여 이미지 정보(소스 코드 포함)에 액세스합니다.

烟雨青岚
烟雨青岚앞으로
2020-06-13 17:27:113806검색

PHP는 Blob을 사용하여 이미지 정보(소스 코드 포함)에 액세스합니다.

php는 blob을 사용하여 이미지 정보(소스 코드 포함)에 액세스합니다.

BLOB은 바이너리 대형 객체라고 하는 MySQL 데이터 유형입니다. 이름에서 알 수 있듯이 MYSQL 바이너리 및 VARBINARY 유형과 유사한 대량의 문자열 데이터를 저장하는 데 사용됩니다.

MySQL BLOB 분류

MySQL BLOB 유형 최대 저장 길이(바이트)

TINYBLOB (1)(2^8)

blob ((2^16)1)

MEDIUMBLOB ((2^24) 1 )

LONGBLOB ((2^32)1)

이 튜토리얼에서는 PHP를 사용하여 MySQL BLOB 필드를 삽입하고 읽는 방법을 배웁니다.

(PS: T Nice PHP Q 버클: 276167802, 검증: csl)

먼저 BLOB 필드가 있는 MySQL 테이블을 생성 해야 합니다.

CREATE TABLE IF NOT EXISTS `output_images` (
  `imageId` tinyint(3) NOT NULL AUTO_INCREMENT,
  `imageType` varchar(25) NOT NULL DEFAULT '',
  `imageData` mediumblob NOT NULL,
  PRIMARY KEY (`imageId`)
)

Insert data

MySQL BLOB 필드에 그림 정보를 삽입하세요.

1. 이미지 파일을 업로드합니다.

2. 이미지 속성(이미지 데이터, 이미지 유형 등)을 가져옵니다.

3.

PHP 구현 스크립트:

imageUpload.php

<?php
if(count($_FILES) > 0) {
if(is_uploaded_file($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;])) {
mysql_connect("localhost", "root", "");
mysql_select_db ("phppot_examples");
$imgData =addslashes(file_get_contents($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;]));
$imageProperties = getimageSize($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;]);
$sql = "INSERT INTO output_images(imageType ,imageData)
VALUES(&#39;{$imageProperties[&#39;mime&#39;]}&#39;, &#39;{$imgData}&#39;)";
$current_id = mysql_query($sql) or die("<b>Error:</b> Problem on Image Insert<br/>" .
mysql_error());
if(isset($current_id)) {
header("Location: listImages.php");
}}}
?>
<HTML>
<HEAD>
<TITLE>Upload Image to MySQL BLOB</TITLE>
<link href="imageStyles.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<form name="frmImage" enctype="multipart/form-data" action="" method="post"
class="frmImageUpload">
<label>Upload Image File:</label><br/>
<input name="userImage" type="file" class="inputFile" />
<input type="submit" value="Submit" class="btnSubmit" />
</form>
</div>
</BODY>
</HTML>

이 스크립트를 실행하면 업로드 양식이 다음과 같이 표시됩니다.

양식을 제출하면 PHP가 콘텐츠 이미지 파일을 가져와서 바이너리로 저장합니다. 데이터를 MySQL BLOB 열에 넣습니다.

그림 표시

브라우저에 BLOB 이미지를 표시하려면 다음을 수행해야 합니다.

1 MySQL BLOB에서 이미지 데이터 및 유형을 가져옵니다.

2. / jpg, image/gif, …) PHP header() 함수를 사용합니다.

3. 이미지 콘텐츠를 출력합니다.

imageView.php
<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("phppot_examples") or die(mysql_error());
if(isset($_GET[&#39;image_id&#39;])) {
$sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET[&#39;image_id&#39;];
$result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>"
. mysql_error());
$row = mysql_fetch_array($result);
header("Content-type: " . $row["imageType"]);
echo $row["imageData"];
}
mysql_close($conn);
?>

위 PHP 코드는 MySQL BLOB에 저장된 이미지를 표시합니다. HTML 이미지 태그에서 해당 image_id를 매개변수로 사용하여 이 PHP 파일을 참조할 수 있습니다. 예:

<img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" />

완성된 코드는 다음과 같습니다.

listImages.php




List BLOB Images




<img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" />

읽어주셔서 감사합니다. 많은 도움이 되셨으면 좋겠습니다.

원본 링크: https://blog.csdn.net/u012275531/article/details/1791499

추천 튜토리얼: "php tutorial"

위 내용은 PHP는 Blob을 사용하여 이미지 정보(소스 코드 포함)에 액세스합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제