>백엔드 개발 >PHP 튜토리얼 >PHP image_php 스킬의 바이너리 변환 구현 방법

PHP image_php 스킬의 바이너리 변환 구현 방법

WBOY
WBOY원래의
2016-05-16 20:28:181237검색

이 기사의 예에서는 PHP 이미지의 바이너리 변환 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.

여기서 파일을 업로드할 때 업로드한 파일을 바이너리로 변환한 후 데이터 필드에 저장하면 다음에 읽을 때도 같은 방식으로 표시할 수 있습니다.

html 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.


이미지를 데이터베이스에 저장합니다. 코드는 다음과 같습니다.


코드 복사 코드는 다음과 같습니다. //업로드된 이미지는 임시파일로 저장되므로
//전달된 이미지를 얻으려면 파일만 읽어야 합니다
$fp = fopen($_FILES["myFile"]["tmp_name"],"rb")
$buf = addlashes(fread($fp,$_FILES["myFile"]["size"]))
//PDO 객체 생성
$dbh = 새 PDO("mysql:host=localhost;port=
3306;dbname=테스트", "루트", "123456″)
//삽입 연산을 수행하고 결과를 변수에 저장합니다
$result = $dbh->query("img(이미지) 값('$buf')에 삽입")
//영향을 받은 행 수를 가져옵니다
if ($result->rowCount() >0) {
echo("데이터가 삽입되었습니다.")
} 다른 {
echo("삽입 작업을 수행할 수 없습니다."); }
//PDO 연결을 명시적으로 종료합니다
$dbh = NULL
?>


이미지 show.php 표시
, 코드는 다음과 같습니다.


코드 복사 $query="img에서 * 선택 Id=".$_GET['id']
코드 복사
코드는 다음과 같습니다.

"r "파일 열기 모드는 읽기 및 쓰기가 가능하며 파일 포인터는 시작 부분을 가리킵니다.

"w"는 쓰기 위해 파일을 열고 파일 포인터가 시작 부분을 가리키며 원본 파일의 길이를 0으로 설정합니다. 파일이 없으면 새 파일을 만듭니다.

"w "파일 모드는 읽기 및 쓰기용으로 열려 있고 파일 포인터는 시작 부분을 가리키며 원본 파일의 길이는 0으로 설정됩니다. 파일이 없으면 새 파일을 만듭니다.

"a"파일 열기 모드는 쓰기 중이며 파일 포인터는 파일의 끝을 가리킵니다. 파일이 없으면 새 파일을 만듭니다.

"a "파일 열기 모드는 읽기 및 쓰기가 가능하며 파일 포인터는 파일의 끝을 가리킵니다. 파일이 없으면 새 파일을 만듭니다.

"b"운영 체제의 텍스트 파일과 바이너리 파일이 다른 경우 이 매개변수를 사용할 수 있습니다. UNIX 시스템에서는 이 매개변수를 사용할 필요가 없습니다.

2. 슬래시 기능 추가

Addslashes 함수는 문자열에 슬래시를 추가하는 데 사용됩니다. 참고: 테스트할 때 이 함수를 제거했는데 그 이유는 직접 시도해 보면 알 수 있습니다.

문자열 추가(string str);

데이터베이스 쿼리가 원활하게 수행될 수 있도록 데이터베이스에서 처리해야 하는 문자열의 따옴표에 슬래시를 추가하는 기능입니다. 변경되는 문자에는 작은따옴표(')와 큰따옴표(")가 포함됩니다. ), 백슬래시() 및 널 문자 NULL(널 바이트).

3. fread 기능

fread 함수는 지정된 길이의 바이트 그룹이나 파일 EOF의 끝까지 읽는 데 사용됩니다.

문자열 fread(int fp, int length); 바이너리 파일에 안전함

fread()는 파일 포인터 파일에서 최대 length 바이트를 읽습니다. 이 함수는 EOF에 도달하거나 (네트워크 스트림의 경우) 패킷을 사용할 수 있을 때 또는 파일 읽기가 중지됩니다. 8192바이트를 읽었을 때(사용자 공간 스트림을 연 후) 어떤 조건이 먼저 발생하든지

바이너리를 이미지로 변환

참고: $newFilePath는 생성된 이미지 이름과 경로를 처리합니다. 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
$newFilePath='1.jpg';
$data = $GLOBALS[HTTP_RAW_POST_DATA];//게시된 바이너리 원시 데이터 가져오기
if(비어 있음($data)){
$data=file_get_contents("php://input");
}
$newFile = fopen($newFilePath,"w");//파일을 열고 쓰기 준비
fwrite($newFile,$data);//파일에 바이너리 스트림 쓰기
fclose($newFile);//파일 닫기

읽은 바이너리 스트림을 데이터베이스에 저장하거나, 바이너리 헤더 파일을 얻기 위해 직접 그림에 쓸 수 있으며, 해당 파일이 어떤 유형에 속하는지 알 수 있습니다.
코드 복사 코드는 다음과 같습니다.
$bin = substr($content,0,2);
$strInfo = @unpack("C2chars", $bin)
$typeCode = intval($strInfo['chars1'].$strInfo['chars2'])
$fileType = '';
스위치($typeCode)
{
사례 7790:
$fileType = 'exe'
휴식
사례 7784:
$fileType = '미디'
휴식
사례 8297:
$fileType = 'rar'
휴식
사례 255216:
$fileType = 'jpg'
휴식
사례 7173:
$fileType = 'gif'
휴식
사례 6677:
$fileType = 'bmp'
휴식
사례 13780:
$fileType = 'png'
; 휴식
기본값:
에코 '알 수 없음'; }
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

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