MySQL中怎么直接储存图片

44次阅读
没有评论

共计 2082 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 MySQL 中怎么直接储存图片,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

如何在 MySQL 中直接储存图片

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

进入 MySql 控制器

输入命令 createdatabasebinary_data;

输入命令 usebinary_data;

输入命令 CREATETABLEbinary_data(idINT(4)NOTNULLAUTO_INCREMENTPRIMARYKEY,

descriptionCHAR(50),bin_dataLONGBLOB,filenameCHAR(50),filesizeCHAR(50),filetypeCHAR(50)); (不能断行)

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

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

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

//store.php3-byFlorianDittmer

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

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(INSERTINTObinary_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

ThisfilehasthefollowingDatabaseID:$id

MYSQL_CLOSE();

}else{

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

Filetoupload/storeindatabase:

}

如何在 MySQL 中直接储存图片

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

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

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

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

以下为引用的内容:

//getdata.php3-byFlorianDittmer

// 调用方法:getdata.php3id=

if($id){

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

@MYSQL_CONNECT(localhost , root , password

@mysql_select_db(binary_data

$query= selectbin_data,filetypefrombinary_datawhereid=$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.php3id= 2 如果你将图片储存在数据库里, 你可以向调用图片一样调用它。

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

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

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

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

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

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

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

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

/usr/local/bin/safe_mysqld-Okey_buffer=16M-Otable_cache=128-Osort_buffer=4M-Orecord_buffer=1M-Omax_allowed_packet=24M

关于 MySQL 中怎么直接储存图片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2082字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)