• 技术文章 >后端开发 >PHP问题

    php如何上传图片到数据库

    王林王林2019-09-21 11:49:14原创2658

    一般我们上传图片采用的传统方式是将图片保存在服务器本机文件夹里。这里我就简单介绍一下将图片直接存储到数据库里的方法实现。

    mysql数据库提供了Blob类型用于存储大量数据,BLOB有四种类型,能容纳不同大小的数据。

    TinyBlob 最大 255B

    Blob 最大 65K

    MediumBlob 最大 16M

    LongBlob 最大 4G

    需要注意的是:php配置文件本身有对post 表单数据限制大小,也有对file提交的文件限制大小。故需去php.ini 修改一下

    upload_max_filesize=10M(file提交文件大小限制)

    post_max_size=10M(表单数据大小限制)

    我用php做一个简单的注册示例。

    mysql表的设计(字段命名有点不规范,实际项目中需要注意一下字段命名规范)

    图片上传.png

    数据库连接文件 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) 用form上传文件时,一定要加上属性内容enctype="multipart/form-data",否则用$_FILES[ 'photo' ] [ ' tmp_name' ] 获取文件信息时会报异常

    推荐教程:PHP视频教程

    以上就是php如何上传图片到数据库的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 上传图片 数据库
    上一篇:php如何上传文件 下一篇:php如何上传图片
    Web大前端开发直播班

    相关文章推荐

    • php实现上传图片客户端和服务器端的方法• PHP7基于curl实现的上传图片功能php技巧• PHP如何上传图片到数据库进行显示的的代码• php和html结合实现上传图片文件到服务器的代码

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网