首頁  >  文章  >  後端開發  >  php如何上傳圖片到資料庫

php如何上傳圖片到資料庫

王林
王林原創
2019-09-21 11:49:146949瀏覽

php如何上傳圖片到資料庫

一般我們上傳圖片採用的傳統方式是將圖片保存在伺服器本機資料夾裡。這裡我就簡單介紹一下將圖片直接儲存到資料庫裡的方法實作。

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表的設計(字段命名有點不規範,實際項目中需要注意一下字段命名規範)

php如何上傳圖片到資料庫

資料庫連接檔案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(&#39;conn.php&#39;);
		
	if(empty($_POST)){
		require(&#39;register.html&#39;);
	}else{			  
		$image = mysql_real_escape_string(file_get_contents($_FILES[&#39;photo&#39;][&#39;tmp_name&#39;])); //获取图片
		$image_type = $_FILES[&#39;photo&#39;][&#39;type&#39;]; //获取图片格式
		$user_name = $_POST[&#39;name&#39;];
		$user_email = $_POST[&#39;email&#39;];
		$user_phone = $_POST[&#39;phone&#39;];
		$user_school = $_POST[&#39;school&#39;];
		$password = $_POST[&#39;password&#39;];
 
		$sqlstr = "insert into user(uname,email,phone,password,school,photo,type) values(&#39;".$user_name."&#39;,&#39;".$user_email."&#39;,&#39;".$user_phone."&#39;,&#39;".$password."&#39;,&#39;".$user_school."&#39;,&#39;".$image."&#39;,&#39;".$image_type."&#39;)";  
		  
		@mysql_query($sqlstr) or die(mysql_error()); //执行sql语句,若执行成功,继续下面跳转页面。若执行失败,提示错误信息  
    		header(&#39;location:login.php&#39;); //跳转页面
		exit();  			
	}
?>

要注意的:

##1) php設定檔大小的限制    

2) 用form上傳檔案時,一定要加上屬性內容enctype="multipart/form-data",否則用$_FILES[ 'photo' ] [ ' tmp_name' ] 取得檔案資訊時會報異常

推薦教學:

PHP影片教學

以上是php如何上傳圖片到資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn