如果我想使用PHP和MySQL从用户保存文件,我将使用什么数据类型?

时间:2010-02-26 16:10:08

标签: php mysql file types

我希望用户能够以PDF,.txt,.doc,.docx上传他们的简历;并允许潜在的雇主下载文件。

我应该使用哪种数据类型?在MS MSQL中,我会使用varbinary(max),对吗?但由于我是MySQL的新手,我有点困惑。 :)

7 个答案:

答案 0 :(得分:11)

您必须使用BLOB类型

答案 1 :(得分:5)

您应该使用varchar来保存文件的路径。文件本身不应存储在数据库中。

答案 2 :(得分:4)

没有人应该提到整个不将数据存储在db中的flickr。 :)

将文件(甚至是大文件)存储在数据库中是一个关于硬件的问题而不是编程实践。如果您的服务器(或服务器场)可以处理业务,那么它没有真正的缺点,并且有优点。主要原因是数据库中的文件没有“卡在”服务器上。文件转到数据库的任何位置,并根据需要进行复制。

与所有事情一样,没有一个答案是正确的......您必须根据您的实际项目要求和未来计划做出最佳决策。

答案 3 :(得分:0)

在MySQL中存储像DOC这样的二进制文件通常是个坏主意。我只是将它们上传到文件系统或转换为纯文本,然后以BLOB或varchar保存到MySQL。

答案 4 :(得分:0)

我同意上面的大部分内容。与在数据库中存储缩略图的Facebook不同,将文件存储在数据库中通常不是一个好主意。

答案 5 :(得分:0)

在这个阶段,上述两种选择都有其优点和缺点。问题是,

  • 当存储为blob和
  • 时,文件的大小会增加
  • 表现受到影响,

相对于从服务器存储和下载它。

答案 6 :(得分:0)

filename.php 在此文件中使用表单发布方法

Upload File<a href="download.php?f=<?php echo $upload_file ?>"><?php echo $upload_file ?></a>&nbsp;<input type="file" name="uploaded_file" id="uploaded_file" value="">

在php中获取发布的文件

$file = $_FILES['uploaded_file'];    //receive the posted file
    $name = $file['name'];
    $path = "C:/wamp/www/mantis/uploads/" . basename($name); // 5
    if (move_uploaded_file($file['tmp_name'], $path)) {

    } else {

    }
**mysql query**
insert into tablename(upload_file)values('".$name."');