• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php如何向数据库添加图片

php 搞代码 4年前 (2022-01-04) 24次浏览 已收录 0个评论

百度开发者的云代码空间为了保证高可用,不允许用户将图片保存到代码空间中,使用CDN或者对象存储不仅收费而且使用比较复杂,于是考

虑能否将img存储在数据库中,虽然很多人说会造成性能问题,权当一试。

1、准备三个文件

第一个用于将图片存储为数据库字符,第二个php文件用于获取数据库字符并生成图片,第三个是文件1所使用的图片。

2、数据库设计

超长字符串或者二进制数据分别可以用TEXT(65535),BLOB(64k)保存,但是尝试使用二进制保存失败,便使用TEXT保存,但是一张500多kb的

图片经过base64加密的字符长度高度75万!

仅仅靠一个TEXT是存不下去的,而且应该也会造成严重的性能问题,所以分割成N份保存,这里以50000字符长度为一个单位。记录

imgid,方便拼接。

3、将图片保存到数据库[dm01_imgTobase64.php]

/*链接数据库*/// 1.转为普通字符$file = file_get_contents('test.j<em style="color:transparent">来源[email protected]搞@^&代*@码网</em>pg');$base64_str = base64_encode($file);$len = strlen($base64_str);$step = ceil($len/50000);for ($i=0; $i <$step ; $i++) {     $substr = substr($base64_str, $i*50000,50000);    $sql = "INSERT INTO b64_img VALUES( null,1,1,$i,'$substr') ";    $res = mysqli_query($link,$sql);}

4、生成的数据

5、读取数据库记录,生成图片[dm02_getImg.php]

/*链接数据库*/$sql = "SELECT * FROM b64_img WHERE imgid = 1 ORDER BY bakid ASC ";$res =    mysqli_query($link,$sql);$data = array();$imgStr = '';while ($row = mysqli_fetch_assoc($res)) {    $imgStr .= $row['bstr']    ;}$binaryStr = base64_decode($imgStr);file_put_contents("ThisImg.jpg", $binaryStr);

6、成功生成图片

推荐教程:PHP视频教程

以上就是php如何向数据库添加图片的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php如何向数据库添加图片

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址