일반적으로 사진을 업로드하는 전통적인 방법은 사진을 서버의 로컬 폴더에 저장하는 것입니다. 여기에서는 사진을 데이터베이스에 직접 저장하는 방법을 간략하게 소개하겠습니다.
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 테이블 디자인 (필드 이름 지정이 약간 불규칙하므로 실제 프로젝트에서는 필드 이름 지정 사양에 주의해야 함)
데이터베이스 연결 파일 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('conn.php'); if(empty($_POST)){ require('register.html'); }else{ $image = mysql_real_escape_string(file_get_contents($_FILES['photo']['tmp_name'])); //获取图片 $image_type = $_FILES['photo']['type']; //获取图片格式 $user_name = $_POST['name']; $user_email = $_POST['email']; $user_phone = $_POST['phone']; $user_school = $_POST['school']; $password = $_POST['password']; $sqlstr = "insert into user(uname,email,phone,password,school,photo,type) values('".$user_name."','".$user_email."','".$user_phone."','".$password."','".$user_school."','".$image."','".$image_type."')"; @mysql_query($sqlstr) or die(mysql_error()); //执行sql语句,若执行成功,继续下面跳转页面。若执行失败,提示错误信息 header('location:login.php'); //跳转页面 exit(); } ?>
참고 사항:
1) PHP 구성 파일 크기 제한
2) 다음을 사용하여 파일을 업로드할 때 양식에 속성 콘텐츠 enctype="multipart/form-data"를 추가해야 합니다. 그렇지 않으면 $_FILES[ 'photo' ] [ ' tmp_name' ]를 사용하여 파일 정보를 얻을 때 예외가 보고됩니다
권장 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP에서 데이터베이스에 사진을 업로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!