Страница 1 из 1

Как скачать строний файл?

Добавлено: 2020.01.14, 15:14
user
Например я забираю файл из стороннего ресурса, можно его скачать просто

Код: Выделить всё

<a href="http://example.org/param1=value1&param2=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
тут же динамический url http://example.org/param1=value1&param2=value2

Re: Как скачать строний файл?

Добавлено: 2020.01.15, 00:12
yiiliveext
user писал(а): 2020.01.15, 00:09 тут же динамический url http://example.org/param1=value1&param2=value2
Это правило для примера, который я привел из документации.

Re: Как скачать строний файл?

Добавлено: 2020.01.15, 00:25
user
yiiliveext писал(а): 2020.01.15, 00:12
user писал(а): 2020.01.15, 00:09 тут же динамический url http://example.org/param1=value1&param2=value2
Это правило для примера, который я привел из документации.
я ценю ваше желаение набить больше сообщений на форуме

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&param2=value2"), ...)