Maison > Article > développement back-end > Comment télécharger des images dans la base de données en php
Généralement, la manière traditionnelle de télécharger des images consiste à enregistrer les images dans le dossier local du serveur. Ici, je vais présenter brièvement la méthode de stockage des images directement dans la base de données.
La base de données MySQL fournit le type Blob pour stocker de grandes quantités de données. Il existe quatre types de BLOB, qui peuvent accueillir des données de différentes tailles.
TinyBlob Maximum 255B
Blob Maximum 65K
MediumBlob Maximum 16M
LongBlob Maximum 4G
Il convient de noter que le fichier de configuration PHP lui-même a une limite de taille pour les données post-formulaire, ainsi qu'une limite de taille pour la soumission des fichiers. Par conséquent, vous devez modifier php.ini
upload_max_filesize=10M (taille limite de soumission des fichiers)
post_max_size=10M (taille limite des données du formulaire)
J'utilise php pour créer un exemple d'inscription simple.
La conception de la table mysql (la dénomination des champs est un peu irrégulière, vous devez faire attention à la convention de dénomination des champs dans les projets réels)
Fichier de connexion à la base de données 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()); //连接数据表
Mise en œuvre du formulaire d'inscription registre.html (sélectionner les parties clés)
<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>
Télécharger des photos et s'inscrire sur la page d'inscription .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(); } ?>
Choses à noter :
1) Limite de taille du fichier de configuration PHP
2) Lors du téléchargement de fichiers en utilisant formulaire, assurez-vous d'ajouter l'attribut content enctype="multipart/form-data", sinon une exception sera signalée lors de l'utilisation de $_FILES[ 'photo' ] [ ' tmp_name' ] pour obtenir des informations sur le fichier
Tutoriel recommandé : Tutoriel vidéo PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!