Codeigniter多个文件上传路径

时间:2010-09-06 16:59:44

标签: file codeigniter upload path

我正在构建一个需要上传文件的应用程序,并将它们放在单独的目录中以获取缩略图和全尺寸图像。但是$ config ['upload_path'] ='。/ uploads /';只允许我选择一个上传路径。 如何定义两个或多个上传路径?

3 个答案:

答案 0 :(得分:11)

实际上你需要做的就是“重新初始化”上传课程。 Codeigniter不允许您使用新参数调用类两次(它忽略第二个请求),但是您可以告诉类手动加载新参数。以下是基础知识:(请注意“$ this-> upload-> initialized($ config)”这一行是关键。

// this is for form field 1 which is an image....
$config['upload_path'] = './uploads/path1';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->upload->initialize($config); 
$this->upload->do_upload($fieild_1);

// this is for form field 2 which is a pdf
$config['upload_path'] = './pdfs/path2';
$config['allowed_types'] = 'pdf';
$config['max_size'] = '300';
$this->upload->initialize($config); 
$this->upload->do_upload($fieild_2);

我在这里写了一篇关于它的文章: http://taggedzi.com/articles/display/multiple-file-uploads-using-codeigniter

您可以更改第二个初始化脚本中的任何允许参数,以便您的第二个文件可以完全不同。您可以根据需要多次执行此操作,只需为每种文件类型重新初始化。 (如果你愿意,你甚至可以设置一个配置数组并循环播放。)

希望这有帮助。

答案 1 :(得分:0)

你在这里混淆了两个问题。您需要进一步将问题分解为离散任务。

首先,您需要设置适当的上传目录。在我的网站上,每个用户都被定向到他们自己的上传目录:

/images/member/1
/images/member/2
/images/member/3

我的控制器根据用户ID

动态设置上传目录
$config['upload_path'] = "/images/member/$user_id";

其次,您需要处理上传的文件,创建调整大小和缩略图。我的图像处理库使用与传递给$ config ['upload_path']相同的路径作为其根目录,并将其输出放在相对于该动态根目录的子目录中:

/images/member/1/resized
/images/member/1/thumbnails

我的网站实际上比这复杂一点。但重点是动态设置$ config ['upload_path']可以让你拥有任意数量的上传路径。

答案 2 :(得分:-1)

简短(令人失望)的答案是:CodeIgniter的文件上传类旨在接受每个表单上传的1个文件。

答案很长somewhere around here