Страница 1 из 1
Как скачать строний файл?
Добавлено: 2020.01.14, 15:14
user
Например я забираю файл из стороннего ресурса, можно его скачать просто
Код: Выделить всё
<a href="http://example.org/param1=value1¶m2=value2" download></a>
а как сделать это средствами Yii2? Я не разобрался как методом sendFile сделать?
Re: Как скачать строний файл?
Добавлено: 2020.01.14, 15:23
yiiliveext
В доке есть
Код: Выделить всё
public function actionFile($filename)
{
$storagePath = Yii::getAlias('@app/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);
}
Re: Как скачать строний файл?
Добавлено: 2020.01.14, 21:56
user
это не сработало
Re: Как скачать строний файл?
Добавлено: 2020.01.14, 22:10
yiiliveext
user писал(а): ↑2020.01.14, 21:56
это не сработало
Уверен на 100% что вы или не прописали, или неверно прописали правило в urlManager. Проверил, у меня все сразу заработало.
Re: Как скачать строний файл?
Добавлено: 2020.01.14, 22:36
user
yiiliveext писал(а): ↑2020.01.14, 22:10
user писал(а): ↑2020.01.14, 21:56
это не сработало
Уверен на 100% что вы или не прописали, или неверно прописали правило в urlManager. Проверил, у меня все сразу заработало.
про какое правило urlManager вы говорите?
Re: Как скачать строний файл?
Добавлено: 2020.01.14, 23:33
yiiliveext
Код: Выделить всё
'rules' => [
//...
'file/<filename:[0-9a-zA-Z\.]+>' => 'site/file',
],
Re: Как скачать строний файл?
Добавлено: 2020.01.15, 00:09
user
Re: Как скачать строний файл?
Добавлено: 2020.01.15, 00:12
yiiliveext
Это правило для примера, который я привел из документации.
Re: Как скачать строний файл?
Добавлено: 2020.01.15, 00:25
user
yiiliveext писал(а): ↑2020.01.15, 00:12
Это правило для примера, который я привел из документации.
я ценю ваше желаение набить больше сообщений на форуме
Re: Как скачать строний файл?
Добавлено: 2020.01.15, 01:26
yiiliveext
user писал(а): ↑2020.01.15, 00:25
я ценю ваше желаение набить больше сообщений на форуме
Надо будет не забыть еще одного кретина в игнор добавить.
Re: Как скачать строний файл?
Добавлено: 2020.01.15, 08:04
unknownby
Каким образом появляется ваш динамический URL? Хотите вставить ссылку в Input и скачать? Или прописывать каждый раз в контроллер?
Re: Как скачать строний файл?
Добавлено: 2020.01.16, 19:09
user
unknownby писал(а): ↑2020.01.15, 08:04
Каким образом появляется ваш динамический URL? Хотите вставить ссылку в Input и скачать? Или прописывать каждый раз в контроллер?
это сторонний сервис, пример ссылки в теме
Re: Как скачать строний файл?
Добавлено: 2020.01.17, 17:16
someweb
Код: Выделить всё
return Yii::$app->response->sendContentAsFile(file_get_contents("http://example.org/param1=value1¶m2=value2"), ...)