Загрузка файла с соответствующим фильтром расширений

#php #codeigniter

#php #codeigniter

Вопрос:

У меня проблемы на моей странице загрузки. Когда я пытаюсь загрузить файл, расширение, которое можно выбрать, устанавливается с помощью «all type», но я попытался установить для моей конфигурации разрешенного типа значение jpg. Это мой контроллер :

 public function upload_file($noArsip)
    {
        $config['upload_path'] = './assets/img/arsip/';
        $config['allowed_types'] = 'jpg'; // --> how to make the allowed type only image extension?

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

        $data_upload_files = $this->upload->data();
        //proses database

        $image = $data_upload_files['file_name'];

        $data = array(
                'video'=>$image
                );

        $this->daftar_arsip_m->updateData($noArsip,$data);
        //$this->load->view("upload_foto_v", $data);
        redirect('upload_foto');

    }
 

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

Ответ №1:

Отдельные расширения по |

 $config['allowed_types'] = 'gif|jpg|png';
 

PS: Расширения не чувствительны к регистру, codeigniter позаботится о форматах верхнего регистра.

Ссылка

Чтобы отфильтровать окно просмотра, просто добавьте accept="image/gif,image/jpeg,image/png" атрибут as к input тегу.

Пример:

 <input type="file" accept="image/gif,image/jpeg,image/png">
 

Живая демонстрация

Комментарии:

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

2. не работает.. другое расширение все еще можно выбрать

3. @RezaKahfi если вы говорите о выборе всех файлов, то я не думаю, что его можно удалить. Но теперь вы можете фильтровать файлы, выбирая расширение изображения. Также вы можете использовать accept=»image/ *» для приема всех типов изображений

4. извините, моя ошибка.. я открыл неправильный вид, потому что, кстати, это мой друг .. большое вам спасибо за вашу помощь