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['userImage']['tmp_name'])) { mysql_connect("localhost", "root", ""); mysql_select_db ("phppot_examples"); $imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name'])); $imageProperties = getimageSize($_FILES['userImage']['tmp_name']); $sql = "INSERT INTO output_images(imageType ,imageData) VALUES('{$imageProperties['mime']}', '{$imgData}')"; $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['image_id'])) { $sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id']; $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!