2013-06-11 2 views
0

У меня есть следующий PHP в CodeIgniter:Codeigniter загрузки хранения «реальной» файловой системы путь вместо чистого 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_path»] возвращает как/home/public_html/sitename/uploads. Мне нужно это, чтобы перейти на www.domain.com/uploads. Любые мысли о том, почему это может происходить?

Я бы предпочел, чтобы не пришлось жестко кодировать замену str там. Надеюсь, это не дубликат.

ответ

2

Данные, возвращаемые функцией загрузки, соответствуют КНОПКУ ДОКУМЕНТА приложения. Вы можете получить имя_файла и, соответственно, использовать 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; 

Надеюсь, это поможет.

+1

Ах. Спасибо, это сработало! – bentedder

0

в документах codeignign указано, что $ 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); 

иметь в виду, что вам придется включить URL-адрес помощника в CodeIgniter использовать функцию base_url

Смежные вопросы