Codeigniter: не может загружать файлы из подкаталога в основной каталог - PullRequest
0 голосов
/ 31 мая 2019

У меня есть 2 приложения codeigniter, одно из которых находится в корне, а другое - в подкаталоге.Я пытаюсь загрузить файлы из приложения в подкаталог в папку с изображениями / художниками в корне (в основном приложении), но получаю

ERROR  404 Page Not Found: Images/artists
The upload destination folder does not appear to be writable.

Я запускаю этот код в контроллере, которыйиспользуется для загрузки в подкаталог приложения

if (file_exists('../images/artists')) {
     echo 'directory exists - ';
        if (!is_dir('../images/artists')) { 
            echo 'not a dir';
         }
         else{
            echo 'it is a dir';
         }
}

И я получаю «каталог существует - это каталог», а затем запускаю код загрузки

$gallery_path = realpath(APPPATH . '../images/artists/');
$config['upload_path'] = $gallery_path;
$config['allowed_types'] = 'jpg|png|jpeg';
$config['max_size'] = '20000';
$config['file_name'] = round(microtime(true) * 1000).'.jpg';
$this->load->library('upload', $config);
if ($this->upload->do_upload('img')) {
    $phot_data = $this->upload->data();
    $photo_name = $phot_data['file_name'];
    $this->resizeImage($photo_name);
     $artist_data['image'] = $config['file_name'];
}

// здесь не используется, ноdows переопределяет и вызывает ошибку?

function do_upload() {
    if ($_FILES['photos']['name'][0] != '') {
        $name_array = array();
        foreach ($_FILES as $key => $value)
            $_FILES['userfile']['name'] = $value['name'];
            $_FILES['userfile']['type'] = $value['type'];
            $_FILES['userfile']['tmp_name'] = $value['tmp_name'];
            $_FILES['userfile']['error'] = $value['error'];
            $_FILES['userfile']['size'] = $value['size'];

            $config['upload_path'] = realpath(APPPATH . 'images/artists/');

            $config['allowed_types'] = 'gif|jpg|png|jpeg';
            $config['max_size'] = '2000';
            $this->load->library('upload');
            $this->upload->initialize($config);
            $this->upload->do_upload();
            $data = $this->upload->data();
            $name_array[] = $data['file_name'];

    }
    redirect('admin/gallery');
}

Я проверил разрешения для изображений и художников, и для них установлено значение 777. Тогда в чем проблема?

1 Ответ

0 голосов
/ 31 мая 2019

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

Проверьте is_writable для более подробной информации. Чтобы решить эту проблему, вам нужно запустить chmod 600 /path/to/images/artists на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...