2014-02-26 20 views
3

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

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

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

回答

1

对于多个文件您有一些替代方法,您可以创建每个字段作为用户按下按钮或使用multiple正当性<input>标记。

要管理这个多上传你必须创建自己的上传库在foreach循环例如虽然有替代品随时读取每个$_FILES['nameoffield']喜欢使用:https://github.com/nicdev/CodeIgniter-Multiple-File-Upload

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

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

+0

如何有不同的随机链接,每次用户通过网站或电子邮件加密链接下载文件?我不知道该怎么做.. :( 非常感谢!我真的很感激它:) – r3mmel

+0

你能教我如何使用函数do_multi_upload()在https://github.com/nicdev/CodeIgniter-Multiple-File-Upload - 这是我在控制器中的代码。我怎么能在这里应用? 'function file_upload(){ $ this-> load-> library('upload',$ config); (!$ 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); }' – r3mmel