通常、写真をアップロードする従来の方法は、サーバーのローカル フォルダーに写真を保存することです。ここでは写真を直接データベースに保存する方法を簡単に紹介します。
Mysql データベースには、大量のデータを格納するための BLOB タイプが用意されており、さまざまなサイズのデータを格納できる BLOB タイプが 4 つあります。
TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
PHP 構成ファイル自体には、投稿フォーム データのサイズ制限とファイル送信のサイズ制限があることに注意してください。したがって、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()); //连接数据表
<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>
<?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) を使用してファイルをアップロードする場合フォームに属性 content enctype="multipart/form-data" を必ず追加してください。そうしないと、$_FILES[ 'photo' ] [ ' tmp_name' ] を使用してファイル情報を取得するときに例外が報告されます
推奨チュートリアル: PHP ビデオ チュートリアル
以上がPHPで画像をデータベースにアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。