php - 使用 MySQL LONGBLOB 上传和下载二进制文件时出错

标签 php mysql file binary blob

我正在托管 MySQL 数据库中使用 LONGBLOG 字段来上传和下载附件。我使用了 http://mirificampress.com/permalink/saving_a_file_into_mysql 中找到的示例代码,并已将文件上传到数据库中(尽管无法检查文件中的每个字节)。

我在下载这些文件时遇到了问题:txt 文件没问题,但 JPEG 或 PDF 文件等二进制文件总是出错。这些二进制文件中的字节在上传或下载期间或两者期间都已更改。

我认为这可能是排序问题,但无法修复。

谁能给点建议吗?

最佳答案

您链接页面上的示例是非常错误的。它使用 addslashes() 作为 MySQL 的转义函数,此外也无法正确清理魔术引号。

请勿使用此示例。

如果您使用file_get_contents()读取所有字节,您所要做的就是对其使用mysqli_real_escape_string()并将其放入字符串字段中。

Longblob 没有编码,因此这在这里应该不是问题,但将数据库连接的编码设置为正确的值始终是一个好主意。

关于php - 使用 MySQL LONGBLOB 上传和下载二进制文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641050/

相关文章:

php - 带有参数的 URL 的 htaccess 301 重定向

php - MySql: 'field list' 中的未知列 ID

c - 无法通过c程序复制二进制文件

php - Prestashop Webservice api url 重定向

php - WordPress 禁用/admin 重定向到/wp-admin

mysql - Django 1.8 中的复杂注释

mysql - 将 MySQL 列转换为行

将字母 append 到文件末尾的 C 程序

php - 在 PHP 中,我需要发出 POST 请求,但变量之一必须是文本文件。我该怎么做?

php - 如何将我的数据库特定列值插入 View 页面中的列表