fopen / fread vs file_get_contents用于在存储MySQL之前读取文件

时间:2012-03-12 08:27:25

标签: php mysql file-upload fopen file-get-contents

我正在编写一个PHP脚本,允许用户通过表单上传文件。该文件将存储在MySQL数据库中表的MEDIUMBLOB字段中。

为此,需要读取上传文件的内容,然后插入。相当简单的东西,但我希望在处理不仅仅是文本文件的文件时,对以下哪种方法最好/最可靠有所了解。

$file_data = file_get_contents($_FILES['file']['tmp_name']);

...对比

$file_pointer = fopen($_FILES['file']['tmp_name'], 'rb');
$file_data = fread($file_pointer, filesize($_FILES['file']['tmp_name'])); //or use $_FILES['file']['size'] instead of filesize()

file_get_contents和fopen / fread都是“二进制安全”,而fopen允许我以二进制模式打开文件......我想知道这是否会有所作为。

最后,大多数脚本会在插入之前清理文件数据 - 很多都使用了addslashes,但我会使用mysqli的“real_escape_string”方法......

但是,我注意到我查看的所有示例都没有在检索数据时删除转义字符(例如,下载脚本从数据库中检索数据,发送标题然后只回显数据而没有任何类型的条带。 。)

这是一个问题,还是我错过了什么?

干杯, 格雷格

0 个答案:

没有答案