我正在编写一个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”方法......
但是,我注意到我查看的所有示例都没有在检索数据时删除转义字符(例如,下载脚本从数据库中检索数据,发送标题然后只回显数据而没有任何类型的条带。 。)
这是一个问题,还是我错过了什么?
干杯, 格雷格