>백엔드 개발 >PHP 문제 >PHP에서 데이터베이스에 사진을 업로드하는 방법

PHP에서 데이터베이스에 사진을 업로드하는 방법

王林
王林원래의
2019-09-21 11:49:147016검색

PHP에서 데이터베이스에 사진을 업로드하는 방법

일반적으로 사진을 업로드하는 전통적인 방법은 사진을 서버의 로컬 폴더에 저장하는 것입니다. 여기에서는 사진을 데이터베이스에 직접 저장하는 방법을 간략하게 소개하겠습니다.

MySQL 데이터베이스는 대용량 데이터를 저장할 수 있는 Blob 유형을 제공하며, 다양한 크기의 데이터를 수용할 수 있는 4가지 유형이 있습니다.

TinyBlob 최대 255B

Blob 최대 65K

MediumBlob 최대 16M

LongBlob 최대 4G

PHP 구성 파일 자체에는 게시 양식 데이터에 대한 제한 사항이 있습니다. 크기, 또한 file 제출된 파일 크기 제한입니다. 따라서 php.ini 수정이 필요합니다

upload_max_filesize=10M(파일 제출 파일 크기 제한)

post_max_size=10M(폼 데이터 크기 제한)

php를 사용하여 간단한 등록 예제를 만들어 보겠습니다.

mysql 테이블 디자인 (필드 이름 지정이 약간 불규칙하므로 실제 프로젝트에서는 필드 이름 지정 사양에 주의해야 함)

PHP에서 데이터베이스에 사진을 업로드하는 방법

데이터베이스 연결 파일 conn.php

$conn = @mysql_connect('localhost' , 'userName' , 'passWord') or die(mysql_error()); //连接数据库
mysql_query('set names utf8' , $conn); //设置连接字符集
@mysql_select_db('user' , $conn) or die(mysql_error()); //连接数据表

등록 양식 구현 Register.html (핵심 부분 선택)

<form action="register.php" method="post"  enctype="multipart/form-data">
	<dl class="admin_login">
		<dd class="pic">
			<img src="img/5.png" alt="" id="preview"/>
			<a href="javascript:;" class="a-upload">
				<input type="file" name="photo" id="" οnchange="imgPreview(this)">上传头像
			</a>
		</dd>
		<dd class="email_icon">
			<input type="text" placeholder="请输入注册邮箱" name="email" class="login_txtbx">
		</dd>
		<dd class="name_icon">
			<input type="text" placeholder="请输入帐号昵称" name="name" class="login_txtbx">
		</dd>
		<dd class="phone_icon">
			<input type="tel" placeholder="请输入联系号码" name="phone" class="login_txtbx">
		</dd>
		<dd class="school_icon">
			<select name="school">
				<option value="0">请选择报研学校</option>
				<option value="1">中南大学</option>
				<option value="2">电子科技大学</option>
				<option value="3">上海交通大学</option>
				<option value="4">华南理工大学</option>
			</select>
		</dd>
		<dd class="pwd_icon">
			<input type="password" placeholder="请输入您的密码" name="password" class="login_txtbx">
		</dd>
		<dd class="rpwd_icon">
			<input type="password" placeholder="请确认您的密码" class="login_txtbx">
		</dd>
		<dd>
			<input type="submit" value="立即注册" class="submit_btn">
		</dd>
	
	</dl>
</form>

사진 업로드 및 등록 페이지register.php

<?php
	require(&#39;conn.php&#39;);
		
	if(empty($_POST)){
		require(&#39;register.html&#39;);
	}else{			  
		$image = mysql_real_escape_string(file_get_contents($_FILES[&#39;photo&#39;][&#39;tmp_name&#39;])); //获取图片
		$image_type = $_FILES[&#39;photo&#39;][&#39;type&#39;]; //获取图片格式
		$user_name = $_POST[&#39;name&#39;];
		$user_email = $_POST[&#39;email&#39;];
		$user_phone = $_POST[&#39;phone&#39;];
		$user_school = $_POST[&#39;school&#39;];
		$password = $_POST[&#39;password&#39;];
 
		$sqlstr = "insert into user(uname,email,phone,password,school,photo,type) values(&#39;".$user_name."&#39;,&#39;".$user_email."&#39;,&#39;".$user_phone."&#39;,&#39;".$password."&#39;,&#39;".$user_school."&#39;,&#39;".$image."&#39;,&#39;".$image_type."&#39;)";  
		  
		@mysql_query($sqlstr) or die(mysql_error()); //执行sql语句,若执行成功,继续下面跳转页面。若执行失败,提示错误信息  
    		header(&#39;location:login.php&#39;); //跳转页面
		exit();  			
	}
?>

참고 사항:

1) PHP 구성 파일 크기 제한

2) 다음을 사용하여 파일을 업로드할 때 양식에 속성 콘텐츠 enctype="multipart/form-data"를 추가해야 합니다. 그렇지 않으면 $_FILES[ 'photo' ] [ ' tmp_name' ]를 사용하여 파일 정보를 얻을 때 예외가 보고됩니다

권장 튜토리얼: PHP 비디오 튜토리얼

위 내용은 PHP에서 데이터베이스에 사진을 업로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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