【问题标题】:how to upload file and store it in mongodb?如何上传文件并将其存储在mongodb中?
【发布时间】:2014-05-20 01:33:14
【问题描述】:

在本例中,“路径”是服务器中(上传的)临时文件的路径?或客户端设备中的文件路径?我正在从 $_FILES 读取文件元数据,但不知道在哪里读取文件以存储在数据库中。请帮忙。 (对不起我的英语)

<?php
    // connect to the ‘myGrid’ GridFS
    $m = new Mongo();
    $db = $m->myDB;
    $myGrid = $db->getGridFS('myGrid');
    $some_file='path of your video or audio file';
    // some extra data you may want to store with your file
    $data_array = array(
        'mime' => mime_content_type($some_file),
        'timestamp' => time(),
    );

    // store a file into the GridFS
    $myGrid->storeFile($some_file, $data_array);
?>

【问题讨论】:

  • $_FILES['foo']['tmp_name'] 是 PHP 在服务器上临时存储文件的位置。但请注意:将文件存储在数据库中通常是一个坏主意,并且很少有使用案例可以证明这一点。
  • 对于文件(文件
  • 大小无关紧要。如果您想保护对文件的直接访问,请不要将它们放在您这边的文档根目录中。将它们放入数据库是一种巨大的浪费 - 考虑 100 个人都在下载同一个文件 - 你必须从数据库中提取相同的文件 100 次。
  • @MarcB 可能还不应该让新手陷入困境:)

标签: php mongodb file-upload gridfs


【解决方案1】:

这是您放入的任何文件的路径,在这种情况下,它将是 PHP $_FILES 数组中的 tmp_name 路径

【讨论】:

  • 它适用于小文件,但是当尝试上传更大的文件时,例如(10mb)文件,发生错误
  • @MherDidaryan 您需要设置 PHP 以允许更大的文件:sitepoint.com/upload-large-files-in-php google 上的第一个结果
  • 非常感谢。我是php新手,我不知道有限制
最近更新 更多