【问题标题】:Uploading multiple files per field and storing in a db with codeigniter每个字段上传多个文件并使用 codeigniter 存储在数据库中
【发布时间】:2011-03-30 09:24:10
【问题描述】:

我有一个使用 codeigniter 将多个文件字段上传到数据库的表单。

我需要能够为每个字段上传多个文件。我知道这可以使用一些 jquery 魔术来实现,但是,我的问题是如何拦截多个文件以及将它们存储在我的数据库中的最佳方法是什么?

现在我只有一个存储文件位置/名称的字段,我是否需要将所有文件作为一个逗号分隔的长字符串插入?如果是这样,我该如何使用该字符串来让我的视图函数显示每个文件?

对不起,如果以上没有意义,如果需要,我可以更详细地解释或发布我的代码。

提前感谢您的帮助

【问题讨论】:

  • 我有点不明白你在问什么?您已经说过要将多个文件上传到数据库中,那么除了存储文件之外,您还想知道什么? RE 存储文件,我认为将它们保存在目录中并引用路径是一种很好的做法。当然,它们可以作为二进制文件存储在数据库中,但如果文件变大,这可能会导致数据库膨胀。
  • 很抱歉给您带来了困惑!我的意思是每个字段选择和上传多个文件!目前我有 4 个字段,每个字段一次上传 1 个文件,但至少有两个字段可能需要一次上传 3 个文件。希望这更清楚吗?
  • 好的,我想我明白你在说什么。您可以使用逗号、竖线或任何您希望的分隔符将值分隔到一个字段中,或者您可以将每个值存储在它自己的行中。您是否有任何理由要将它们全部存储在一行中?如果您坚持将它们存储在一行中,我会使用管道符号 (|) 或其他在文件名中找不到的不常见字符。
  • 没有理由将它们排成一行,但这是否意味着如果上传了多个文件,则必须动态创建数据库字段?
  • AAAAH 我明白了,您无疑需要使用 jQuery 或任何其他 JS 来实现这一点。标准的 HTML 文件浏览器只允许您选择一个文件。

标签: php jquery mysql codeigniter file-upload


【解决方案1】:

这么说让我很痛苦,但一次上传多个文件的最佳方法是使用像Uploadify 这样的插件。

关于您希望如何将其存储在数据库中...如果您允许单个用户上传多个文件,我建议您使用三个表:

  1. 用户(user_id、用户名、电子邮件等)
  2. 文件(file_id、filepath、time_uploaded 等)
  3. Users_files (user_id, file_id)

然后,当您将文件存储在服务器上时,您可以在“文件”表中插入一个新行。那么当你删除文件时,一定要删除files表中的行和users_files表中的关联。

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    相关资源
    最近更新 更多