共计 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();
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 问一下细节