Что эквивалентно методу force_download в codeIgniter 4

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

helper('download');
            // read file contents
            //$data = file_get_contents(WRITEPATH.'uploads/'.$filename);
    
             $data = file_get_contents(base_url().'/uploads/'.$filename, TRUE);
            force_download($filename, $data);

Я получаю эту ошибку: вызов неопределенной функции

App\Controllers\force_download()

Спасибо помог мне


person Dominicytos    schedule 12.08.2020    source источник


Ответы (2)


Если у вас есть прямой путь к вашему файлу, вы можете использовать метод download() из $response

return $response->download('/path/to/photo.jpg', null);

при желании вы можете использовать setFileName() для установки имени файла при отправке в браузер

return $response->download('/path/to/photo.jpg', null)->setFileName('some.jpg');

Справка: принудительная загрузка файла

person M Khalid Junaid    schedule 12.08.2020

В CI 3 мы используем помощник для загрузки нашей функции загрузки, и этот метод — force_download. В CI 4 мы используем $response для загрузки нашего файла. Ниже приведен код, который загружает файл:

public function download($id){
        $superadminModel = model('App\Models\SuperAdminModel');
        $fileinfo = $superadminModel->download($id);// get name of file using ID
        $file = ROOTPATH.'/uploads/documents/'.$File['doc'];//file location+filename
        return $this->response->download($file, null);//download file
    }

ROOTPATH.'/uploads/documents/' это место для вашего файла может быть другим, поэтому вместо этого места укажите местонахождение вашего файла

person ALI HAIDER    schedule 09.06.2021