Sistem File Laravel: Panyimpenan lan unggahan file
Panyimpenan file Laravel nawakake abstraksi sistem file sing kuat lan fleksibel.
Manajemen filesystem Laravel ngidini sampeyan nggarap disk panyimpenan sing beda-beda, kanthi transparan.
5 menit
Sampeyan kudu ngembangake proyek kanggo ngatur file sing akeh, lan sampeyan ora ngerti teknologi sing digunakake. Ing patemon padha marang sampeyan bab panyimpenan file laravel, dirancang kanggo proyèk penting, intrigued, sampeyan mutusaké kanggo nyoba kanggo ngerti apa iku bisa nengen kanggo sampeyan utawa ora. Mung downside, sanadyan, iku sampeyan ora ngerti carane bisa karo sistem file di laravel, carane ngaturupload lan download saka file laravel.
Sampeyan wis teka ing panggonan sing tepat ing wektu sing tepat: ing ngisor iki, nyatane, aku bakal menehi sampeyan kabeh pandhuan sing dibutuhake kanggo njupuk kauntungan saka panyimpenan file laravel, lan saka sistem file laravel kanggo ngatur file kanthi tertib lan resik. Aja kuwatir, iki dudu operasi sing rumit, sing penting yaiku duwe ide sing jelas babagan cara ngatur lan nyusun kabeh: sampeyan bakal sinau apa sing kudu diwiwiti sajrone artikel iki.
Dadi, apa sampeyan mikir babagan njupuk tindakan saiki? Lungguh kanthi kepenak, ngukir sawetara menit kanggo awake dhewe lan waca kabeh sing dakkandhakake babagan nggunakake produk sing apik iki framework: Aku yakin, ing pungkasan pandhuan, sampeyan bakal bisa nindakake pakaryan sing apik. Sawise ujar manawa, sing bisa daklakoni yaiku muga-muga sampeyan seneng maca lan kerja sing apik!
Artikel iki bakal njelajah kemampuan saka sistem file di Laravel, fokus ing manajemen panyimpenan e ing unggahan berkas . Apa sampeyan pamula utawa pangembang sing berpengalaman, ngerti fitur-fitur kasebut bakal mbantu sampeyan ngatur file kanthi efisien ing aplikasi sampeyan. Laravel.
Dasar panyimpenan file Laravel
Sistem kasebut panyimpenan file laravel nyedhiyakake API sing prasaja lan terpadu kanggo akeh sistem file. Ndhukung tanpa masalah panyimpenan lokal, Amazon S3 lan layanan liyane maya panyimpenan.
Fitur:
- Facades Panyimpenan: nyederhanakake operasi file.
- Konfigurasi Disk: nyiyapake lokasi panyimpenan beda.
- Operasi File: Nindakake tumindak kayataLumbung lan Recovery file.
contone
use Illuminate\Support\Facades\Storage;
// Store a file
Storage::disk('local')->put('example.txt', 'File content');
// Retrieve a file
$content = Storage::get('example.txt');
Ing conto kode nggunakake kelas Lumbung, lan metode tartamtu Disk kanggo nggawe ing sistem file file lokal sing disebut contone.txt duwe konten'Isi file'. Baris katelu lan pungkasan nindakake njaluk saka file, i.e. njupuk file contone.txt lan sijine ing variabel $ isi.
Nalika sampeyan bisa ndeleng loro operasi saka panyimpenan e bali padha banget prasaja, lan sampeyan bakal weruh mengko, padha ora ngganti malah yen kita bisa ing ndhukung panyimpenan saka macem-macem teknologi.
Unggahan file, unggahan file Laravel
Ngatur a upload file laravel Iku tugas umum ing aplikasi web. Laravel nyederhanakake proses iki kanthi metode lan validasi sing dibangun.
Langkah-langkah kanggo ngetrapake unggahan file Laravel
- Nggawe formulir karo file input.
- Atur unggahan ing controller.
- Simpen file nggunakake sistem panyimpenan Laravel.
contone
// In your blade template
<form action="/jw/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
}
Nggarap disk panyimpenan sing beda ing sistem file laravel
Laravel ngidini sampeyan nyiyapake macem-macem disk panyimpenan, supaya gampang nggunakake lokasi utawa layanan panyimpenan sing beda.
Jinis disk umum saka sistem file Laravel
- Lokal : Simpen file ing server sampeyan.
- Amazon S3 : Gunakake AWS kanggo panyimpenan skalabel.
- FTP : sambungan menyang server FTP kanggo manajemen file.
- File Cloud Rackspace : Gunakake solusi panyimpenan maya.
Conto konfigurasi disko
// 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'),
],
],
Nggunakake disk sing beda
Storage::disk('local')->put('file.txt', 'Content');
Storage::disk('s3')->put('file.txt', 'Content');
Operasi sistem file Laravel
Kita duwe macem-macem cara kanggo nindakake macem-macem operasi ing sistem file laravel.
Operasi umum
- Nggawe direktori : Atur file sampeyan.
- Nyalin file : Duplikat file yen perlu.
- Pindhah file : Ngatur maneh lokasi file.
- Mbusak file : Mbusak file sing ora dikarepake.
- Priksa eksistensi file : validates ngarsane file.
contone
// 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
}
Visibilitas lan keamanan file
Laravel ngidini sampeyan ngatur visibilitas file (umum utawa pribadi) lan ngetrapake langkah-langkah keamanan kanggo nglindhungi file sensitif.
Pilihan visibilitas:
- Aku nerbitake : diakses liwat URL.
- Pribadi : Mbutuhake otentikasi.
Tuladha manajemen visibilitas:
// 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');
Pitakonan sing Sering Ditakoni (FAQ)
Sampeyan bisa nggunakake metode validasi Laravel ing pengontrol sampeyan kanggo validasi unggahan file. Punika conto:public function upload(Request $request)
{
$request->validate([ 'document' => 'required|file|mimes:jpg,png,pdf|max:2048', ]);
$path = $request->file('document')->store('uploads');
}
Ya, sampeyan bisa ngidini sawetara unggahan file kanthi nambahake multiple
atribut ing input formulir lan ngowahi controller kanggo nangani file array<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
}
}
File umum bisa diakses liwat URL tanpa otentikasi, dene file pribadi mbutuhake otentikasi pangguna kanggo ngakses. Sampeyan bisa ngatur visibilitas nalika nyimpen file nggunakake putFileAs
cara, nemtokake tingkat visibilitas sing dikarepake.