【问题标题】:Codeigniter - Download a upload file in the directoryCodeigniter - 下载目录中的上传文件
【发布时间】:2014-03-29 08:25:45
【问题描述】:

我正在使用最新的Codeigniter版本,我在http://ellislab.com/codeigniter%20/user-guide/helpers/download_helper.html写了一个关于基本文件上传和下载助手的程序。

我想创建一个系统,将多个文件上传到目录并将文件名保存到数据库和上传者的名称,并且具有下载链接以下载该特定用户的每个文件的功能。 如果可能,系统可以将加密链接通过电子邮件发送给用户以下载文件。而且只能下载特定时间..

我不知道要下载的动态文件的逻辑。有人可以教如何做到这一点或什么逻辑可以解决这个问题。非常感谢! :)

【问题讨论】:

    标签: php codeigniter email file-upload download


    【解决方案1】:

    对于多个文件,您有一些选择,您可以在用户按下按钮时创建每个字段,或使用multiple 专有到<input> 标记。

    要管理此多次上传,您必须创建自己的上传库,例如在 foreach 循环中读取每个 $_FILES['nameoffield'],尽管有可供使用的替代方法,例如:https://github.com/nicdev/CodeIgniter-Multiple-File-Upload

    在您的数据库中,您可以有两个字段来存储原始文件名和路径,以及一个加密的字段。可能与随机的唯一数字或时间戳相关联。

    要通过电子邮件发送加密链接,并且通过加密我认为您是在说文件的伪装链接,而不是使用原始名称,您只需选择将加密名称存储到控制器的字段,例如下载并保留要接收的变量一个值作为参数。如果该值确实存在,则必须在数据库中检查该值,然后重定向到该文件。通过这样做,您应该可以下载您的文件。

    【讨论】:

    • 每次用户通过网站或电子邮件加密链接下载文件时,会有不同的随机链接怎么办?我不知道该怎么做.. :( 非常感谢!我真的很感激。:)
    • 你能教我如何在github.com/nicdev/CodeIgniter-Multiple-File-Upload 中使用 do_multi_upload() 函数吗——这是我在控制器中的代码。我怎样才能在这里应用它? function file_upload(){ $this->load->library('upload', $config); if(!$this->upload->do_upload()){ $error = array('error' => $this->upload->display_errors()); $this->load->view('gallery/gallery', $error); } else{ $data = array('upload_data' => $this->upload->data()); $this->load->view('gallery/upload_success', $data); }
    猜你喜欢
    • 1970-01-01
    • 2018-11-02
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 2015-12-16
    • 1970-01-01
    • 2020-10-18
    相关资源
    最近更新 更多