[擴展推薦] laravel-download-link —— 生成下載鏈接

Laravel

轉載自 Laravel 論壇:https://learnku.com/laravel/t/49522

這個擴展包允許你生成文件的下載鏈接。

安裝后,你可以執(zhí)行以下操作:

$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->generate();
// zkTu70fieUFZLGMoEP95l1RQfFj5zCOqHlM0XBTnc6ZaZTtm4GY5xPXGGLzLEAVe

配置文件中的默認下載路由為「download」,所以如果你的域名是「example.com」,則應使用此鏈接:

example.com/download/{link}

// 例如
example.com/download/zkTu70fieUFZLGMoEP95l1RQfFj5zCOqHlM0XBTnc6ZaZTtm4GY5xPXGGLzLEAVe

注意: 你需要將 {link} 替換成生成的鏈接。

你可以使用以下命令發(fā)布配置文件:

php artisan vendor:publish --provider="Armancodes\DownloadLink\DownloadLinkServiceProvider" --tag="config"

這是已發(fā)布的配置文件的內容:

return [
    /*
    |--------------------------------------------------------------------------
    | Download Route
    |--------------------------------------------------------------------------
    |
    | Download route will be added to your app URL for using download links.
    | E.g. if your app URL is "example.com", then if your set the download route to
    | "download" it will be "example.com/download/{link}".
    |
    */
    'download_route' => 'download',
];

使用

你可以使用給定名稱顯式設置要保存和下載的文件名:

$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->fileName('new-text.txt')->generate();

還可以添加過期時間,以便僅在鏈接過期之前可用:

$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->expire(now()->addDay())->generate();

你還可以指定是否只有經(jīng)過身份驗證的用戶或游客才能使用該鏈接:

// 僅通過身份驗證的用戶
$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->auth()->generate();

// 僅游客
$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->guest()->generate();

你可以將一個或多個IP地址放入黑名單(下載鏈接不適用于這些IP地址):

$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->limitIp('127.0.0.1')->generate();

$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->limitIp(['127.0.0.1', '127.0.0.2', '127.0.0.3'])->generate();

或者,您可以將一個或多個IP地址放入白名單(下載鏈接僅適用于這些IP地址):

$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->allowIp('127.0.0.1')->generate();

$link = DownloadLink::disk('public')->filePath('uploads/test.txt')->allowIp(['127.0.0.1', '127.0.0.2', '127.0.0.3'])->generate();

配置文件中的默認下載路由為「download」,所以如果你的域名是「example.com」,則應使用此鏈接:

example.com/download/{link}

// 例如
example.com/download/zkTu70fieUFZLGMoEP95l1RQfFj5zCOqHlM0XBTnc6ZaZTtm4GY5xPXGGLzLEAVe

注意: 你需要將 {link} 替換成生成的鏈接。

你可以這樣刪除一個鏈接:

DownloadLink::delete('link');

// For example
DownloadLink::delete('zkTu70fieUFZLGMoEP95l1RQfFj5zCOqHlM0XBTnc6ZaZTtm4GY5xPXGGLzLEAVe');

你可以使用以下命令刪除數(shù)據(jù)庫中的過期鏈接:

php artisan download-links:remove-expired

討論請前往專業(yè)的 Laravel 論壇:https://learnku.com/laravel/t/49522

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容