PHP는 이미지를 업로드하고 데이터베이스에 저장하는 방식을 구현합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
PHP는 일반적으로 move_uploaded_file 메소드를 사용하여 이미지를 서버에 저장하는 방식으로 이미지를 업로드합니다. 그러나 웹사이트에 여러 서버가 있는 경우 일반적인 사용을 위해서는 모든 서버에 이미지를 게시해야 합니다(이미지 서버를 사용하는 경우 제외).
이미지 데이터를 데이터베이스에 저장하면 여러 서버에서 파일을 공유하여 공간을 절약할 수 있습니다.
우선 이미지 파일은 바이너리 데이터이므로 해당 바이너리 데이터를 mysql 데이터베이스에 저장해야 합니다.
mysql 데이터베이스는 대용량 데이터를 저장하기 위한 BLOB 유형을 제공합니다. BLOB는 다양한 크기의 데이터를 수용할 수 있는 바이너리 객체입니다.
BLOB는 4가지 종류가 있으며, 최대 저장되는 정보량을 제외하면 동일합니다. 필요에 따라 다양한 유형을 사용할 수 있습니다.
TinyBlob 최대 255B
블롭 맥스 65K
MediumBlob 최대 16M
LongBlob 최대 4G
이미지 데이터를 저장하는 데 사용되는 데이터 테이블 사진의 구조는 다음과 같습니다.
upload_image_todb.php:
// 判断액션
$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 데모에 이미지 업로드
머리>
<본문>