ホームページ >バックエンド開発 >PHPチュートリアル >PHP は、画像をアップロードしてデータベースに保存するメソッドを実装します。_PHP チュートリアル
php は、写真をアップロードしてデータベースに保存するメソッドを実装します。皆さんの参考に共有してください。具体的な分析は次のとおりです:
PHP は画像をアップロードし、通常は move_uploaded_file メソッドを使用して画像をサーバーに保存します。ただし、Web サイトに複数のサーバーがある場合は、通常の使用のためにすべてのサーバーに画像を公開する必要があります (画像サーバーを使用するサーバーを除く)
画像データをデータベースに保存すると、複数のサーバー間でファイルを共有して容量を節約できます。
まず、画像ファイルはバイナリデータなので、バイナリデータをmysqlデータベースに保存する必要があります。
mysql データベースは、大量のデータを格納するための BLOB タイプを提供します。BLOB は、さまざまなサイズのデータを収容できるバイナリ オブジェクトです。
BLOB には 4 つのタイプがあり、保存される情報の最大量を除いて同じです。ニーズに応じてさまざまなタイプを使用できます。
TinyBlob 最大 255B
ブロブマックス 65,000
中ブロブ最大 16M
ロングブロブ最大4G
データテーブル写真、画像データを保存するために使用され、構造は次のとおりです:
upload_image_todb.php:
// 判断アクション
$action = isset($_REQUEST['action'])? $_REQUEST['アクション'] : '';
// 上传图片
if($action=='add'){
$image = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));
$type = $_FILES['写真']['タイプ'];
$sqlstr = "写真(type,binarydata)に挿入 value('".$type."','".$image."')";
@mysql_query($sqlstr) または die(mysql_error());
header('location:upload_image_todb.php');
出口();
// 表示写真
}elseif($action=='show'){
$id = isset($_GET['id'])? intval($_GET['id']) : 0;
$sqlstr = "id=$id の写真から * を選択";
$query = mysql_query($sqlstr) または die(mysql_error());
$thread = mysql_fetch_assoc($query);
if($thread){
header('content-type:'.$thread['type']);
echo $thread['binarydata'];
出口();
}
}その他{
// 表示画像列表及び上传表单
?>
<タイトル>画像をデータベースにアップロードするデモ
<フォーム名="form1" メソッド="ポスト" アクション="upload_image_todb.php" enctype="multipart/form-data">
画像:
< /p>';
}
?>
ボディ>