Laravel 文件存儲

Laravel 文件儲存提供了強大且靈活的檔案系統抽象。

Laravel 檔案系統管理可讓您完全透明地使用不同的儲存磁碟。

5 minuti

你要開發一個專案來管理大量文件,而且你不知道該使用哪種技術。在一次會議上他們告訴你 Laravel 文件存儲,專為重要項目而設計,您很感興趣,決定嘗試一下以了解它是否適合您。但唯一的缺點是你不知道如何使用 文件系統 di laravel,如何管理上載下載文件 laravel.

您在正確的時間來到了正確的地點:事實上,下面我將為您提供所有必要的說明,以利用以下優勢: Laravel 文件存儲, 他出生於 Laravel 檔案系統 以有序、乾淨的方式管理文件。別擔心,這些並不是複雜的操作,重要的是對如何組織和建立一切有清晰的想法:您將在本文的過程中了解入門所需的內容。

那麼,您認為現在就採取行動呢?舒適地坐著,為自己騰出幾分鐘的時間,閱讀我要告訴您的有關使用這款出色產品的所有內容 框架:我確信,讀完本指南後,您將完全有能力出色地完成工作。話雖如此,我所能做的就是祝您閱讀愉快,工作順利!

本文將探討 文件系統 di Laravel, 重點關注 儲存管理 e 關於文件上傳 。無論您是初學者還是經驗豐富的開發人員,了解這些功能都將幫助您在應用程式中有效地管理文件 Laravel.

Laravel 文件儲存基礎知識

系統 Laravel 文件存儲 為許多檔案系統提供簡單、統一的API。支援沒有問題 本地儲存, 亞馬遜S3 和其他服務 雲存儲.

產品特點:

例子

use Illuminate\Support\Facades\Storage;

// Store a file
Storage::disk('local')->put('example.txt', 'File content');

// Retrieve a file
$content = Storage::get('example.txt');

在範例中,程式碼使用了類 儲存應用,以及具體方法 磁盤 創造於 文件系統 本地一個名為 例子.txt 具有內容 '文件內容'。第三行也是最後一行的作用是 獲得 文件的,即獲取文件 例子.txt 並將其放入變數中 $內容.

正如你所看到的兩個操作 存儲 e 返回 它們非常簡單,正如你稍後會看到的,即使我們致力於支持,它們也不會改變 存儲 不同技術的。

文件上傳,Laravel 文件上傳

管理一個 上傳 laravel 文件 這是 Web 應用程式中的常見任務。 Laravel 透過內建方法和驗證簡化了這個過程。

實作 Laravel 檔案上傳的步驟

  1. 建立表格 與輸入檔。
  2. 管理上傳 在控制器中。
  3. 儲存檔案 使用 Laravel 儲存系統。

例子

// In your blade template
<form action="/zh-TW/upload" method="POST" enctype="multipart/form-data">
@csrf
<input type="file" name="document">
<button type="submit">Upload</button>
</form>

// In your controller
public function upload(Request $request)
{
$path = $request->file('document')->store('uploads');
// Save $path to database if needed
}

在 Laravel 檔案系統中使用不同的儲存磁碟

Laravel 可讓您設定多個儲存磁碟,以便輕鬆使用不同的儲存位置或服務。

常見磁碟類型 Laravel 檔案系統

  • 區域設置 :將文件儲存在您的伺服器上。
  • 亞馬遜S3 :使用 AWS 進行可擴充儲存。
  • 則fTP :連接到 FTP 伺服器進行檔案管理。
  • Rackspace雲文件 :使用雲端儲存解決方案。

磁碟配置範例o

// config/filesystems.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
],
],

使用不同的光碟

Storage::disk('local')->put('file.txt', 'Content');
Storage::disk('s3')->put('file.txt', 'Content');

Laravel 檔案系統操作

我們有一組豐富的方法來對 laravel 檔案系統執行各種操作。

常用操作

  • 建立目錄 :整理您的文件。
  • 複製文件 :根據需要複製文件。
  • 移動檔案 :重新組織文件位置。
  • 刪除文件 :刪除不需要的檔案。
  • 檢查文件是否存在 :驗證文件是否存在。

例子

// Create a directory
Storage::makeDirectory('photos');

// Copy a file
Storage::copy('old/file.jpg', 'new/file.jpg');

// Move a file
Storage::move('old/file.jpg', 'new/file.jpg');

// Delete a file
Storage::delete('file.jpg');

// Check if a file exists
if (Storage::exists('file.jpg')) {
// File exists
}

文件可見性和安全性

Laravel 可讓您管理文件可見性(公有或私有)並實施安全措施來保護敏感文件。

可見性選項:

  • 我發表 : 透過 URL 存取。
  • 普里瓦托 : 需要驗證。

可見性管理範例:

// Set visibility when storing a file
Storage::putFileAs('photos', $file, 'photo.jpg', 'public');

// Check visibility
$visibility = Storage::getVisibility('photo.jpg');

// Change visibility
Storage::setVisibility('photo.jpg', 'private');

常見問題(常見問題解答)

如何在 Laravel 中驗證文件上傳?

您可以在控制器中使用 Laravel 的內建驗證方法來驗證檔案上傳。這是一個例子:
public function upload(Request $request)
{
$request->validate([ 'document' => 'required|file|mimes:jpg,png,pdf|max:2048', ]);
$path = $request->file('document')->store('uploads');
}

我可以同時上傳多個文件嗎?

是的,您可以透過新增以下內容來允許多個文件上傳 multiple表單輸入中的屬性並修改控制器以處理檔案數組

<input type="file" name="documents[]" multiple>


public function upload(Request $request)
{
foreach ($request->file('documents') as $file)
{
$path = $file->store('uploads');
// Save $path to database if needed
}
}

Laravel 中公用文件可見性和私有文件可見度有什麼不同?

公用文件可以透過 URL 訪問,無需身份驗證,而私有​​文件則需要使用者身份驗證才能存取。您可以使用以下命令在儲存檔案時管理可見性 putFileAs方法,指定所需的可見性等級。

    作者