0

我在codeigniter中有以下php:

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '4000';
$config['max_width']  = '3000';
$config['max_height']  = '3000';

$this->load->library('upload', $config);
$image_data = $this->upload->do_upload();

但是,当文件上传时,$image_data['file_path']返回为 /home/public_html/sitename/uploads。我需要它去 www.domain.com/uploads。关于为什么会发生这种情况的任何想法?

我宁愿不必在那里硬编码 str 替换。希望这不是重复的。

4

2 回答 2

2

上传函数返回的数据是根据应用程序的 DOCUMENT ROOT。您可以获取 file_name 并相应地使用 base_url() 来完成此操作

例子。

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '4000';
$config['max_width']  = '3000';
$config['max_height']  = '3000';

$this->load->library('upload', $config);
$image_data = $this->upload->do_upload();

$image_data_file = $image_data["file_name"];
$image_file_url = base_url()."/uploads/".$image_data_file;

希望这可以帮助。

于 2013-06-11T12:37:47.183 回答
0

在 codeigniter 文档中指定 $image['file_path'] 返回文件的绝对服务器路径。

或者你可以做

$upload_path = 'uploads/';
$config['upload_path'] = './'. $upload_path;
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '4000';
$config['max_width']  = '3000';
$config['max_height']  = '3000';

$this->load->library('upload', $config);
$image_data = $this->upload->do_upload();
$dir_url = base_url($upload_path);

请记住,您必须在 codeigniter 中包含url 帮助程序才能使用 base_url 函数

于 2013-06-11T12:41:02.843 回答