由于@Sjoerd和@zerkms正确地指出,您不需要这样做 – 一个blob列用于存储原始二进制数据,因此您可以绕过Base64进程并插入文件的原始数据.
如果要将图像存储在数据库中(顺便说一句,我个人不喜欢这样做),最好存储原始数据 – Base64编码数据使其更大,意味着必须在渲染图像,这增加了处理开销.
这是你可以插入原始二进制数据(假设MysqL扩展名):
$data = file_get_contents($_FILES['name_of_control']['tmp_name']); $data = MysqL_real_escape_string($data); $query = " INSERT INTO table (`blob_column`) VALUES ('$data') "; MysqL_query($query);
如果你真的想要Base64编码(在这种情况下,它可以存储在varchar中),只需添加一个base64_encode()调用:
$data = file_get_contents($_FILES['name_of_control']['tmp_name']); $data = base64_encode($data); // There is an argument that this is unnecessary with base64 encoded data,but // better safe than sorry :) $data = MysqL_real_escape_string($data); $query = " INSERT INTO table (`varchar_column`) VALUES ('$data') "; MysqL_query($query);
原文地址:https://www.jb51.cc/php/132840.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。