mysql如何存储图片_教你怎样在MySQL数据库中直接储存图片

欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧!计算机编程语言

如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。

本文概述:

在MySQL中建立一个新的数据库

一个怎样储存文件的例子程序

一个怎样访问文件的例子程序

在MySQL中建立一个新的database

首先,你必须在你的MySQL中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤:

进入MySQL**

输入命令"create database binary_data;"

输入命令"use binary_data;"

输入命令"CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));" (不能断行)

如果没有意外,数据库和表应该建立好了。

一个怎样储存文件的例子程序 用这个例子你可以通过Html表单将文件传输到数据库中。编程语言排行榜上

e8edcf9da071b325d596bf887f29eb91.png

编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。[1]

最早的编程语言是在电脑发明之后产生的,当时是用来控制提花织布机及自动演奏钢琴的动作。在电脑领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于声明式编程,说明需要的结果,而不说明如何计算。

store.PHP3 以下为引用的内容:

以下为引用的内容:

// store.PHP3 - by FloRIAn Dittmer

?>

Store binary data into SQL Database

// 如果提交了表单,代码将被执行:

if ($submit) {

// 连接到数据库

// (你可能需要调整主机名,用户名和密码)

MySQL_CONNECT( "localhost", "root", "passWord");

MySQL_select_db( "binary_data");

$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));

$result=MySQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ".

"VALUES (’$form_description’,’$data’,’$form_data_name’,’$form_data_size’,’$form_data_type’)");

$id= MySQL_insert_id();

print "

This file has the following Database ID: $id";

MySQL_CLOSE();

} else {

// 否则显示储存新数据的表单

?>

File Description:

File to upload/store in database:

}

?>

如果你执行了这个程序,你将会看见一个简单的Html表单,单击“浏览”选择一个文件,然后单击提交。

当文件上传至web服务器之后,程序将会告诉你刚刚上传的文件的ID,记住这个ID,待会要用的。

一个怎样访问文件的例子程序:

你可以通过这个程序访问你刚才储存的文件

以下为引用的内容:

// getdata.PHP3 - by Florian Dittmer

// 调用方法: getdata.PHP3?id=

if($id) {

// 你可能需要调整主机名,用户名和密码:

@MySQL_CONNECT( "localhost", "root", "password");

@MySQL_select_db( "binary_data");

$query = "select bin_data,filetype from binary_data where id=$id";

$result = @MySQL_QUERY($query);

$data = @MySQL_RESULT($result,0, "bin_data");

$type = @MySQL_RESULT($result,0, "filetype");

Header( "Content-type: $type");

echo $data;

};

?>

程序必须知道要访问那个文件, 你必须将ID作为一个参数。

例如:一个文件在数据库中的ID为2. 你可以这样调用它:

getdata.PHP3?id=2如果你将图片储存在数据库里, 你可以向调用图片一样调用它。

Example:一个图片文件在数据库中的ID为3,你可以这样调用它:

getdata.PHP3?id=3

怎样储存大于1MB的文件:

如果你想储存大于1MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改。

下面几条也许可以帮助你储存小于24MB的文件:

修改 store.PHP3 ,将 MAX_FILE_SIZE 的值改成 24000000。

修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在PHP.ini中)的值改成24000000

去掉MYSQL的数据包大小限制,在一般情况下 MySQL 小于1 MB的数据包。

你必须用以下参数重启你的MySQL

/usr/local/bin/safe_MySQLd -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24Mc语言编程入门

大家学到了多少?如果意犹未尽,可前往课课家官网直接查看,希望大家获益匪浅哦!!!

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL ,可以使用 BLOB 类型来存储二进制数据,包括图片。 以下是将图片存储MySQL 的步骤: 1. 创建一个表来存储图片,示例代码如下: ``` CREATE TABLE images ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, image MEDIUMBLOB ); ``` 2. 在应用程序,读取图片并将其转换为二进制数据。 例如,以下代码使用 PHP 读取图片并将其存储MySQL : ```php // 获取图片二进制数据 $imageData = file_get_contents('path/to/image.jpg'); // 连接数据库 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 准备 SQL 语句 $sql = "INSERT INTO images (name, image) VALUES (?, ?)"; // 创建预处理语句 $stmt = mysqli_prepare($conn, $sql); // 绑定参数 mysqli_stmt_bind_param($stmt, "sb", $imageName, $imageData); // 执行预处理语句 mysqli_stmt_execute($stmt); // 关闭预处理语句和数据库连接 mysqli_stmt_close($stmt); mysqli_close($conn); ``` 3. 当需要显示图片时,从数据库读取二进制数据并将其转换为图像。例如,以下 PHP 代码从数据库读取图片并在浏览器显示: ```php // 连接数据库 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 准备 SQL 语句 $sql = "SELECT image FROM images WHERE id = ?"; // 创建预处理语句 $stmt = mysqli_prepare($conn, $sql); // 绑定参数 mysqli_stmt_bind_param($stmt, "i", $imageId); // 执行预处理语句 mysqli_stmt_execute($stmt); // 绑定结果 mysqli_stmt_bind_result($stmt, $imageData); // 读取结果 mysqli_stmt_fetch($stmt); // 输出图像 header("Content-type: image/jpeg"); echo $imageData; // 关闭预处理语句和数据库连接 mysqli_stmt_close($stmt); mysqli_close($conn); ``` 注意:在实际应用,需要确保图片数据的安全性和完整性,例如验证上传的图片类型、大小和文件名,以及使用 HTTPS 协议传输图片数据等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值