ホームページ > バックエンド開発 > PHPの問題 > PHPで画像をデータベースにアップロードする方法

PHPで画像をデータベースにアップロードする方法

王林
リリース: 2023-02-24 15:38:02
オリジナル
7014 人が閲覧しました

PHPで画像をデータベースにアップロードする方法

通常、写真をアップロードする従来の方法は、サーバーのローカル フォルダーに写真を保存することです。ここでは写真を直接データベースに保存する方法を簡単に紹介します。

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 テーブルの設計 (フィールドの名前は少し不規則です。実際のプロジェクトではフィールドの名前の仕様に注意する必要があります)

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>
ログイン後にコピー
画像をアップロードして登録ページを登録.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) を使用してファイルをアップロードする場合フォームに属性 content enctype="multipart/form-data" を必ず追加してください。そうしないと、$_FILES[ 'photo' ] [ ' tmp_name' ] を使用してファイル情報を取得するときに例外が報告されます

推奨チュートリアル: PHP ビデオ チュートリアル

以上がPHPで画像をデータベースにアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート