如何以二进制格式在db中保存文件?

时间:2018-11-28 05:58:45

标签: php mysql binaryfiles

我需要以二进制格式将文件保存在数据库中,而不是将文件保存在目录中并在数据库中插入文件名。就像我通过print_r($_FILES)获取文件一样,下一步是什么?

2 个答案:

答案 0 :(得分:0)

表实体数据类型应为blob

  CREATE TABLE `media`( `id` INT NOT NULL AUTO_INCREMENT, `content` BLOB, PRIMARY KEY (`id`) );

例如:

    $uploaddir = '/var/www/uploads/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

    if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {

      $fileContent = file_get_contents($uploadfile);
      $query = "INSERT INTO `media` (content) VALUES ("$fileContent");
    }

答案 1 :(得分:0)

您可以在数据库表中创建一个类型为blob的列。 然后使用file_get_contents($ uploaddir。basename($ _ FILES ['userfile'] ['name']))获取文件内容 现在可以使用插入查询将其轻松存储在数据库列中。