2015-09-29 2 views
0

Я делаю сайт код воспламенитель и пытаюсь реализовать AJAX урожай изображение профиля из http://croppic.net/AJAX обрезка не работает в codeigniter?

URL: http://myphpdevelopers.com/dev/selfee_social/ пользователь: [email protected] ПАРОЛЬ: abcd1234

приборной панели URL: http://myphpdevelopers.com/dev/selfee_social/notype.

наведите указатель мыши на профиль pic в верхней левой части страницы. Будет видна иконка, которая будет вызывать загрузчик файлов при нажатии.

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

Если вы проверяете страницу в консоли разработчика, скажем, светлячок вы увидите ряд ошибок: -

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;"> 

<h4>A PHP Error was encountered</h4> 

<p>Severity: Warning</p> 
<p>Message: chown(): Operation not permitted</p> 
<p>Filename: controllers/home.php</p> 
<p>Line Number: 292</p> 

</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;"> 

<h4>A PHP Error was encountered</h4> 

<p>Severity: Warning</p> 
<p>Message: mkdir(): Permission denied</p> 
<p>Filename: helpers/myfile_helper.php</p> 
<p>Line Number: 11</p> 

</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;"> 

<h4>A PHP Error was encountered</h4> 

<p>Severity: Warning</p> 
<p>Message: mkdir(): Permission denied</p> 
<p>Filename: helpers/myfile_helper.php</p> 
<p>Line Number: 11</p> 

</div>The upload path does not appear to be valid. 

Путь загрузки является /home/myphpdev/public_html/dev/selfee_social/user_photos/profile, но я предполагаю, что его не доступен для записи, так что я написал следующий код мой контроллер

public function ajax_upload_profile_pic() 
    { 
     //error reporting 

     error_reporting(E_ALL); 
     ini_set("display_errors", "On"); 

     header("Content-Type:application/json;"); 
     $ua = $this->session->userdata('user_auth'); 

     $uniq_id = $ua["id"]; 

     if(empty($ua)) 
     { 
      die("not authenticated"); 
     } 

     if($_FILES['img']['error']==0) 
     { 
      $owner = @exec('whoami'); 
      $DIR = $this->profile_image_path; 

      chown($DIR, $owner); 
      //chmod($DIR, 0755); 
      $temp_path = $DIR. 'temp/'. $uniq_id.'/'; 

      if (!file_exists($temp_path)){ 
       my_create_dirs_r($temp_path, 0777); 
      } 

      $config = array(
        'allowed_types' => 'jpg|jpeg|gif|png', 
        'upload_path' => $temp_path, 
        'max_size' => 0 
        ); 
      //$this->load->library('upload', $config);//not working 

      $this->upload->initialize($config); 

      if (! $this->upload->do_upload('img')) 
      { 
       echo $this->upload->display_errors('','');die(); 
       $this->session->set_flashdata('error',$this->upload->display_errors('','')); 

      } 
      else 
      { 
       $image_data = $this->upload->data(""); 

      } 

      $response = array(
       "status" => 'success', 
       "url" => base_url('user_photos/profile/temp/' . $uniq_id . '/' . $image_data['file_name']), 
         'file' => $image_data['file_name'], 
       "width" => $image_data['image_width'], 
       "height" => $image_data['image_height'] 
      ); 
      echo json_encode($response); 
     } 
     //echo json_encode($ua); 

     die(); 
    } 

файл изображения не получает загружены и наложения, чтобы обрезать его не отображается

путь профиль изображение

$this->profile_image_path = realpath('.').'/user_photos/profile/'; 

и помощник myfile_helper.php имеет функцию ниже:

if (! function_exists('my_create_dirs_r')) 
{ 
    function my_create_dirs_r($dirName, $rights=0777){ 
     $dirs = explode('/', $dirName); 
     $dir=''; 
     foreach ($dirs as $part) { 
      $dir.=$part.'/'; 
      if (!is_dir($dir) && strlen($dir)>0) 
       mkdir($dir, $rights); 
     } 
    } 
} 

Может кто-нибудь помочь с этим?

ответ

0

Убедитесь, что:

  • веб-каталог принадлежит пользователю апача. («ls -al» сообщит вы)
  • родительский каталог, в котором вы хотите создать, также принадлежит этому пользователю.
  • родительский каталог не является гора, в которой у вас нет WRITE разрешения

  • путь, который вы хотите создать правильный (var_dump ($ dstDir) расскажет вас) $ this- > newDirMode содержит правильное значение разрешения.(Если вы работаете на окнах это будет игнорироваться)

Если нет никаких проблем, и она по-прежнему не работает, я хотел бы сделать:

  • сделать себе пользователя апачский и попытаться создать он вручную («sudo -u apache», если ваше имя пользователя - apache)
  • попытайтесь опустить третий параметр «true» в «mkdir ($ dstDir, $ this-> newDirMode, true); и создать все каталоги один за другой
  • проверить журналы («/ Var/Журнал/апаш» является ваш друг)

Надеется, что это помогает.

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