Öncelikle SiteController.php
içinde aşağıdaki gibi actionFiledownload
adında bir action
tanımlamanız gerekir. Web sitenizin kök dizininde frontend/web
içinde files adında bir klasör oluşturun ve içine abc.pdf adında bir dosya ekleyin.
public function actionFiledownload($filename)
{
$storagePath = Yii::getAlias('@webroot/files');
// check filename for allowed chars (do not allow ../ to avoid security issue: downloading arbitrary files)
if (!preg_match('/^[a-z0-9]+\.[a-z0-9]+$/i', $filename) || !is_file("$storagePath/$filename")) {
throw new \yii\web\NotFoundHttpException('The file does not exists.');
}
return Yii::$app->response->sendFile("$storagePath/$filename", $filename);
}
İndirme Linki ise aşağıda ki gibi kullanılabilir.
<a href="<?=Yii::$app->urlManager->createUrl(['site/filedownload','filename'=>'abc.pdf'])?>">DOWNLOAD</a>