Задать вопрос
@Ace_Viral

Приходит файл 0 байт в yii2, почему?

Action в моем контроллере:
public function actionGetFile($id)
	{
		if(($file = Upload::findOne(['id' => $id])) !== NULL){
			return \Yii::$app->response->sendFile(
				Site::UPLOADS_DOMAIN . '/' . $file->getFilePath(false),
				$file->original_name . "." . $file->original_extension,
				['mimeType'=>$file->mime_type, 'inline'=>false]
			);
		}
		else
			throw new NotFoundHttpException('The selected file does not exist.');
	}

отправляю get запрос в /controller-name/get-file?id=n
файл начинает скачиваться но он 0 байт
если сделать get запрос в Site::UPLOADS_DOMAIN . '/' . $file->getFilePath(false)
файл начинает скачиваться но с другим названием так мне не надо, мне надо чтобы я мог изменять его название
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Средний 8 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Вы передаете урл, а нужен локальный путь:
return \Yii::$app->response->sendFile(
        $_SERVER['DOCUMENT_ROOT'] . '/' . $file->getFilePath(false),
        $file->original_name . "." . $file->original_extension,
        ['mimeType'=>$file->mime_type, 'inline'=>false]
      );

Разберитесь уже один раз в разнице между относительными путями, абсолютными и урл.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы