2013-05-21 2 views
0

Я создал форму загрузки с использованием CI. Теперь мои фотографии загружены в C: \ xampp \ htdocs \ ci_new \ uploads * .jpgCodeigniter - загрузка изображений из браузера

Я хочу, чтобы эти изображения были доступны из Интернета, поэтому я могу добавить их путь к моей базе данных, но когда я пытаюсь загружайте их через localhost/ci_new/uploads/*. jpg, это дает мне ошибку - файлы изображений arent там (так что я ошибся с файлом папки, я думаю).

Не могли бы вы рассказать мне, где мне нужно поместить изображения, поэтому папка может быть общедоступной для посетителей, и поэтому я могу заполнить путь в качестве URL-адреса в моей базе данных.

Это мой код загрузки, если это необходимо:

function do_upload(){ 
    $config['upload_path'] = './uploads'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size']='5000'; 
    $config['max_width'] = '1024'; 
    $config['max_height']= '768'; 

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

    if(!$this->upload->do_upload()) { 
     $error = array('error'=>$this->upload->display_erros()); 
     $this->load->view('upload_form', $error); 
    } else { 
     $data=array('upload_data'=>$this->upload->data()); 
     //$this->db->insert('images', $data); 
     $this->load->view('upload_success', $data); 
     print_r($data); 
    } 
} 

Спасибо.

+0

Вы уверены, что они не там? Это может быть проблема с разрешением. то есть они есть, но не имеют правильного разрешения на просмотр из браузера. – stormdrain

+0

Если у вас есть файл .htaccess, убедитесь, что он не влияет на ваш путь добавления. Если вы думаете, что это может быть, просто переместите или удалите файл .htaccess временно и посмотрите, будут ли ваши изображения работать. –

ответ

0

Убедитесь, что вы преобразовали имя файла изображения, чтобы преобразовать специальные символы, которые не разрешены в URL.

Try:

$filename = explode('.', $filename); 
$tmp_filename = str_replace(" ", "_", $filename[0]); 
       /* replaces space with '-' */ 
$tmp_filename = preg_replace('/[^A-Za-z0-9\-]/', '_', $tmp_filename); 
       /* removes special chars */ 
$tmp_filename = preg_replace('/_+/', '_', $tmp_filename); 
       /* replaces multiple '_' with single */ 
$filename = $tmp_filename. 
      '.' 
      .$filename[sizeof($filename)-1]; 
      /*Concatenating extension again.*/ 
Смежные вопросы