Home >Backend Development >PHP Problem >How to upload pictures to database in php
Generally, the traditional way we upload pictures is to save the pictures in the local folder of the server. Here I will briefly introduce the method of storing pictures directly into the database.
Mysql database provides the Blob type for storing large amounts of data. There are four types of BLOB that can accommodate data of different sizes.
TinyBlob Maximum 255B
Blob Maximum 65K
MediumBlob Maximum 16M
LongBlob Maximum 4G
It should be noted that the PHP configuration file itself has a size limit for post form data and a size limit for file submission. Therefore, you need to modify php.ini
upload_max_filesize=10M (file submission file size limit)
##post_max_size=10M (form data size limit)
I use php to make a simple registration example. The design of mysql table (field naming is a bit irregular, you need to pay attention to the field naming specifications in actual projects)Database connection file 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()); //连接数据表
Registration form implementation register.html (select key parts)
<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>
Upload pictures and registration page 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(); } ?>Things to note:
1) PHP configuration file size limit
2) When uploading files using form, be sure to Add the attribute content enctype="multipart/form-data", otherwise an exception will be reported when using $_FILES[ 'photo' ] [ ' tmp_name' ] to obtain file information
Recommended tutorial:The above is the detailed content of How to upload pictures to database in php. For more information, please follow other related articles on the PHP Chinese website!