在mysql中存储文件(照片和视频)的最佳方法是什么?

时间:2012-03-23 00:17:36

标签: php mysql

我不知道哪种方式可以更好地用于在本地服务器上传和保存文件。 例如,我看到有人在mysql字段中插入了图片的链接,我现在很困惑...... 我想上传一些文件并在其他情况下显示... 什么是最好和最安全的方式?

3 个答案:

答案 0 :(得分:2)

将所有图像存储在名为photos的文件夹中。然后,在数据库中保存文件的索引,为其分配索引号和其他信息。将文件保存在照片文件夹中,将其重命名为[index_number].jpg,或者需要任何扩展名。例如,如果我上传文件coolpic.jpg,则会为其分配索引号2845.文件本身保存在photos/2845.jpg

答案 1 :(得分:1)

保存在数据库中可能会出现一些问题,例如数据库性能下降(读取和写入大文件),数据库崩溃(删除行字段编辑的结果),备份问题 (因为庞大的转储文件,当表需要修复时会出现一些问题。 来自mySQL的读取文件将再次由Apache提供。 我建议您使用带有重写模式的正常路径(虚拟URL)

答案 2 :(得分:0)

不要使用img链接..它不是必需的,它只是让你的DB更大。

你只是存储“picture.jpg”

并在文档中使用<img src="images/'.$row['image'].'">

更好的是,你可以为它创建一个功能(显示图片)。

function DImage($image)
{
//you can do miracles here like checking images types, if is file and so on, padding, even adding divs and vspaces..

$output = '<img src="imagesfolder/'.$image.'">';
return $output;

}

所以你要做的就是...... echo DImage($ row ['image']);

PS:如果你询问$ _POST&amp; $ _FILE上传,当然..你不可能维护图片,名称和更新我确定..