php – Base64编码上传的文件,然后保存在数据库中
发布时间:2020-12-13 16:28:26 所属栏目:PHP教程 来源:网络整理
导读:我想基于64个编码上传的文件,然后将其保存到 MySQL数据库中的表的Blob类型列中. 我已经尝试内置PHP函数base64_encode与文件变量,但这似乎不起作用. 有办法可以做到吗? 原因是我不想使用moveuploaded文件到一个文件夹. 谢谢. 由于@Sjoerd和@zerkms正确地指出
我想基于64个编码上传的文件,然后将其保存到
MySQL数据库中的表的Blob类型列中.
我已经尝试内置PHP函数base64_encode与文件变量,但这似乎不起作用. 有办法可以做到吗? 原因是我不想使用moveuploaded文件到一个文件夹. 谢谢.
由于@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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |