Laravel - GET запрос на загрузку выхода автоматически - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть ссылка на файл для скачивания:

<a href="{{ route('download_document', ['file' => 'agos.pdf']) }}" class=" text-info" style="cursor: pointer;">Download file</a>

МАРШРУТЫ

Route::group(['middleware' => ['web','auth','Admin','active'], 'prefix' => 'admin'], function(){

    // USERS
    Route::resource('user','UserController');
    Route::post('user/permissions/update','UserController@update_permission')->name('update_user_permissions');

    // MODULI
    Route::resource('module','ModuleController');

    // MODULISITICA
    Route::resource('modulistica','ModulisticaController');

Route::post('modulistica_cliente','ModulisticaController@update_client_module')->name('modulistica_post_cliente');
    Route::post('modulistica_prodotto','ModulisticaController@update_product_module')->name('modulistica_post_prodotto');
    Route::get('modulistica/download/cliente/{file}','ModulisticaController@download_cliente')->name('modulistica_download_cliente');
    Route::get('modulistica/download/{file}','ModulisticaController@download_module')->name('modulistica_download_module');
    Route::get('modulistica/download/prodotto/{file}','ModulisticaController@download_prodotto')->name('modulistica_download_prodotto');

    // UTILITY
    Route::post('utility/become/client','UtilityController@become_client')->name('utility_become_client');
    Route::resource('loan','LoanController');
    Route::get('area_download/document/{file}', function ($file){

        $path_file = storage_path().'/app/public/documents/'.$file;
        return response()->download($path_file, $file);

    })->name('download_document');

});

ОШИБКА

Прибытие в "https://mysite.it/admin/loan" представление без проблем. Когда я нажимаю на ссылку GET, он перенаправляет меня в ЛОГИН, но будучи моим пользователем, вошедшим в систему при входе в систему, перенаправляет меня в" https://mysite.it/home".

Iпровел несколько тестов, получив следующую информацию:

  • Запрос не приходит по маршруту "area_download / document / {file}"
  • Запрос не приходит к администраторуactive 'middlewares.

Итак, мои выводы заключаются в том, что проблема заключается в промежуточном программном обеспечении " Web " или " Auth ", но я не могу понять, почему.Разместите всю группу маршрутов, если это может быть полезно.Если вам нужно больше на маршрутах, я могу прикрепить скриншоты!

Буду признателен за помощь, спасибо!

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Я нашел решение!проблема заключалась в том, что мой запрос на получение был сделан таким образом.

https://mysite.it/admin/area_download/document/example.pdf

окончательное расширение PDF создает системную ошибку.Как избежать окончательного расширения, такого как:

https://mysite.it/admin/area_download/document/example.pdf/go

Проблема решена!

0 голосов
/ 19 декабря 2018

Если вы просто разрешаете скачивать файл без какой-либо аутентификации, вы можете попробовать это:

Blade File

<a href="{{ Storage::url($file_name) }}" download class=" text-info" style="cursor: pointer;">Download file</a>

От этого пользователя можно напрямую загрузитьфайл.Просто нужно добавить путь к файлу в атрибутах href и download.

или удалить промежуточное программное обеспечение AUTH, если вы не хотите аутентифицировать пользователя.


И вы хотите аутентифицировать пользователя, тогда вам нужны детали route:list и middleware.

...