Laravel menyediakan abstraksi sistem file yang kuat berkat paket Flysystem PHP yang luar biasa oleh Frank de Jonge. Integrasi Laravel Flysystem menyediakan driver sederhana untuk bekerja dengan sistem file lokal, SFTP, dan Amazon S3. Lebih baik lagi, sangat mudah untuk beralih di antara opsi penyimpanan ini antara mesin pengembangan lokal Anda dan server produksi karena API tetap sama untuk setiap sistem
Konfigurasi
File konfigurasi sistem file Laravel terletak di
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
5. Di dalam file ini, Anda dapat mengonfigurasi semua "disk" sistem file Anda. Setiap disk mewakili driver penyimpanan dan lokasi penyimpanan tertentu. Contoh konfigurasi untuk setiap driver yang didukung disertakan dalam file konfigurasi sehingga Anda dapat mengubah konfigurasi untuk mencerminkan preferensi dan kredensial penyimpanan AndaDriver
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
6 berinteraksi dengan file yang disimpan secara lokal di server yang menjalankan aplikasi Laravel sementara driver 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
7 digunakan untuk menulis ke layanan penyimpanan cloud S3 AmazonCatatan Anda dapat mengonfigurasi disk sebanyak yang Anda suka dan bahkan mungkin memiliki banyak disk yang menggunakan pengandar yang sama
Sopir Lokal
Saat menggunakan driver
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_6, semua operasi file relatif terhadap direktori 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
9 yang ditentukan dalam file konfigurasi composer require league/flysystem-sftp-v3 "^3.0"
0 Anda. Secara default, nilai ini disetel ke direktori composer require league/flysystem-sftp-v3 "^3.0"
1. Oleh karena itu, metode berikut akan menulis ke composer require league/flysystem-sftp-v3 "^3.0"
2use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
_Disk Publik
Disk
composer require league/flysystem-sftp-v3 "^3.0"
_3 yang disertakan dalam file konfigurasi composer require league/flysystem-sftp-v3 "^3.0"
0 aplikasi Anda dimaksudkan untuk file yang akan dapat diakses publik. Secara default, disk composer require league/flysystem-sftp-v3 "^3.0"
_3 menggunakan driver 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
6 dan menyimpan file-nya di composer require league/flysystem-sftp-v3 "^3.0"
7Agar file ini dapat diakses dari web, Anda harus membuat tautan simbolis dari
composer require league/flysystem-sftp-v3 "^3.0"
8 hingga composer require league/flysystem-sftp-v3 "^3.0"
7. Memanfaatkan konvensi folder ini akan menyimpan file Anda yang dapat diakses publik dalam satu direktori yang dapat dengan mudah dibagikan di seluruh penerapan saat menggunakan sistem penerapan tanpa henti seperti EnvoyerUntuk membuat tautan simbolik, Anda dapat menggunakan perintah
'host' => env['SFTP_HOST'],
// Settings for basic authentication...
'username' => env['SFTP_USERNAME'],
'password' => env['SFTP_PASSWORD'],
// Settings for SSH key based authentication with encryption password...
'privateKey' => env['SFTP_PRIVATE_KEY'],
'passphrase' => env['SFTP_PASSPHRASE'],
// Optional SFTP Settings...
// 'hostFingerprint' => env['SFTP_HOST_FINGERPRINT'],
// 'passphrase' => env['SFTP_PASSPHRASE'],
// 'port' => env['SFTP_PORT', 22],
// 'root' => env['SFTP_ROOT', ''],
0 ArtisanSetelah file disimpan dan tautan simbolis telah dibuat, Anda dapat membuat URL ke file tersebut menggunakan bantuan
'host' => env['SFTP_HOST'],
// Settings for basic authentication...
'username' => env['SFTP_USERNAME'],
'password' => env['SFTP_PASSWORD'],
// Settings for SSH key based authentication with encryption password...
'privateKey' => env['SFTP_PRIVATE_KEY'],
'passphrase' => env['SFTP_PASSPHRASE'],
// Optional SFTP Settings...
// 'hostFingerprint' => env['SFTP_HOST_FINGERPRINT'],
// 'passphrase' => env['SFTP_PASSPHRASE'],
// 'port' => env['SFTP_PORT', 22],
// 'root' => env['SFTP_ROOT', ''],
1echo asset['storage/file.txt'];
Anda dapat mengonfigurasi tautan simbolis tambahan di file konfigurasi
composer require league/flysystem-sftp-v3 "^3.0"
0 Anda. Setiap tautan yang dikonfigurasi akan dibuat saat Anda menjalankan perintah 'host' => env['SFTP_HOST'],
// Settings for basic authentication...
'username' => env['SFTP_USERNAME'],
'password' => env['SFTP_PASSWORD'],
// Settings for SSH key based authentication with encryption password...
'privateKey' => env['SFTP_PRIVATE_KEY'],
'passphrase' => env['SFTP_PASSPHRASE'],
// Optional SFTP Settings...
// 'hostFingerprint' => env['SFTP_HOST_FINGERPRINT'],
// 'passphrase' => env['SFTP_PASSPHRASE'],
// 'port' => env['SFTP_PORT', 22],
// 'root' => env['SFTP_ROOT', ''],
0 public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
Prasyarat Pengemudi
Konfigurasi Driver S3
Sebelum menggunakan driver S3, Anda perlu menginstal paket Flysystem S3 melalui manajer paket Composer
composer require league/flysystem-aws-s3-v3 "^3.0"
Informasi konfigurasi driver S3 terletak di file konfigurasi
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
5 Anda. File ini berisi contoh susunan konfigurasi untuk driver S3. Anda bebas memodifikasi larik ini dengan konfigurasi dan kredensial S3 Anda sendiri. Demi kenyamanan, variabel lingkungan ini cocok dengan konvensi penamaan yang digunakan oleh AWS CLIKonfigurasi Driver FTP
Sebelum menggunakan driver FTP, Anda harus menginstal paket FTP Flysystem melalui manajer paket Composer
composer require league/flysystem-ftp "^3.0"
Integrasi Flysystem Laravel bekerja sangat baik dengan FTP; . Jika Anda perlu mengonfigurasi sistem file FTP, Anda dapat menggunakan contoh konfigurasi di bawah ini
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
Konfigurasi Driver SFTP
Sebelum menggunakan driver SFTP, Anda perlu menginstal paket Flysystem SFTP melalui pengelola paket Composer
composer require league/flysystem-sftp-v3 "^3.0"
Integrasi Flysystem Laravel bekerja sangat baik dengan SFTP; . Jika Anda perlu mengonfigurasi sistem file SFTP, Anda dapat menggunakan contoh konfigurasi di bawah ini
'host' => env['SFTP_HOST'],
// Settings for basic authentication...
'username' => env['SFTP_USERNAME'],
'password' => env['SFTP_PASSWORD'],
// Settings for SSH key based authentication with encryption password...
'privateKey' => env['SFTP_PRIVATE_KEY'],
'passphrase' => env['SFTP_PASSPHRASE'],
// Optional SFTP Settings...
// 'hostFingerprint' => env['SFTP_HOST_FINGERPRINT'],
// 'passphrase' => env['SFTP_PASSPHRASE'],
// 'port' => env['SFTP_PORT', 22],
// 'root' => env['SFTP_ROOT', ''],
Sistem File Cakupan & Hanya-Baca
Scoped disk memungkinkan Anda untuk menentukan sistem file di mana semua jalur secara otomatis diawali dengan awalan jalur yang diberikan. Sebelum membuat disk sistem file yang dicakup, Anda perlu menginstal paket Flysystem tambahan melalui pengelola paket Komposer
composer require league/flysystem-path-prefixing "^3.0"
Anda dapat membuat instance dengan cakupan jalur dari setiap disk sistem file yang ada dengan menentukan disk yang menggunakan driver
'host' => env['SFTP_HOST'],
// Settings for basic authentication...
'username' => env['SFTP_USERNAME'],
'password' => env['SFTP_PASSWORD'],
// Settings for SSH key based authentication with encryption password...
'privateKey' => env['SFTP_PRIVATE_KEY'],
'passphrase' => env['SFTP_PASSPHRASE'],
// Optional SFTP Settings...
// 'hostFingerprint' => env['SFTP_HOST_FINGERPRINT'],
// 'passphrase' => env['SFTP_PASSPHRASE'],
// 'port' => env['SFTP_PORT', 22],
// 'root' => env['SFTP_ROOT', ''],
7. Misalnya, Anda dapat membuat disk yang mencakup disk 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
7 Anda yang sudah ada ke awalan jalur tertentu, lalu setiap operasi file yang menggunakan disk lingkup Anda akan menggunakan awalan yang ditentukan 'prefix' => 'path/to/videos',
Disk "Hanya-baca" memungkinkan Anda membuat disk sistem file yang tidak mengizinkan operasi tulis. Sebelum menggunakan opsi konfigurasi
'host' => env['SFTP_HOST'],
// Settings for basic authentication...
'username' => env['SFTP_USERNAME'],
'password' => env['SFTP_PASSWORD'],
// Settings for SSH key based authentication with encryption password...
'privateKey' => env['SFTP_PRIVATE_KEY'],
'passphrase' => env['SFTP_PASSPHRASE'],
// Optional SFTP Settings...
// 'hostFingerprint' => env['SFTP_HOST_FINGERPRINT'],
// 'passphrase' => env['SFTP_PASSPHRASE'],
// 'port' => env['SFTP_PORT', 22],
// 'root' => env['SFTP_ROOT', ''],
_9, Anda perlu menginstal paket Flysystem tambahan melalui manajer paket Composerecho asset['storage/file.txt'];
_0Selanjutnya, Anda dapat menyertakan opsi konfigurasi
'host' => env['SFTP_HOST'],
// Settings for basic authentication...
'username' => env['SFTP_USERNAME'],
'password' => env['SFTP_PASSWORD'],
// Settings for SSH key based authentication with encryption password...
'privateKey' => env['SFTP_PRIVATE_KEY'],
'passphrase' => env['SFTP_PASSPHRASE'],
// Optional SFTP Settings...
// 'hostFingerprint' => env['SFTP_HOST_FINGERPRINT'],
// 'passphrase' => env['SFTP_PASSPHRASE'],
// 'port' => env['SFTP_PORT', 22],
// 'root' => env['SFTP_ROOT', ''],
_9 dalam satu atau lebih susunan konfigurasi disk AndaSistem File yang Kompatibel dengan Amazon S3
Secara default, file konfigurasi
composer require league/flysystem-sftp-v3 "^3.0"
0 aplikasi Anda berisi konfigurasi disk untuk disk 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
7. Selain menggunakan disk ini untuk berinteraksi dengan Amazon S3, Anda dapat menggunakannya untuk berinteraksi dengan layanan penyimpanan file apa pun yang kompatibel dengan S3 seperti MiniO atau DigitalOcean SpacesBiasanya, setelah memperbarui kredensial disk agar sesuai dengan kredensial layanan yang akan Anda gunakan, Anda hanya perlu memperbarui nilai opsi konfigurasi
composer require league/flysystem-path-prefixing "^3.0"
3. Nilai opsi ini biasanya ditentukan melalui variabel lingkungan composer require league/flysystem-path-prefixing "^3.0"
4echo asset['storage/file.txt'];
_1MiniO
Agar integrasi Sistem Terbang Laravel menghasilkan URL yang tepat saat menggunakan MinIO, Anda harus menentukan variabel lingkungan
composer require league/flysystem-path-prefixing "^3.0"
5 sehingga cocok dengan URL lokal aplikasi Anda dan menyertakan nama bucket di jalur URLecho asset['storage/file.txt'];
_2Peringatan
Membuat URL penyimpanan sementara melalui metode6 tidak didukung saat menggunakan MiniO
composer require league/flysystem-path-prefixing "^3.0"
Mendapatkan Instans Disk
Fasad
composer require league/flysystem-path-prefixing "^3.0"
_7 dapat digunakan untuk berinteraksi dengan salah satu disk yang Anda konfigurasikan. Misalnya, Anda dapat menggunakan metode composer require league/flysystem-path-prefixing "^3.0"
_8 pada fasad untuk menyimpan avatar pada disk default. Jika Anda memanggil metode pada fasad composer require league/flysystem-path-prefixing "^3.0"
_7 tanpa terlebih dahulu memanggil metode 'prefix' => 'path/to/videos',
0, metode tersebut akan secara otomatis diteruskan ke disk defaultecho asset['storage/file.txt'];
_3Jika aplikasi Anda berinteraksi dengan banyak disk, Anda dapat menggunakan metode
'prefix' => 'path/to/videos',
0 pada fasad composer require league/flysystem-path-prefixing "^3.0"
7 untuk bekerja dengan file pada disk tertentuecho asset['storage/file.txt'];
_4Disk Sesuai Permintaan
Terkadang Anda mungkin ingin membuat disk saat runtime menggunakan konfigurasi tertentu tanpa konfigurasi tersebut benar-benar ada di file konfigurasi
composer require league/flysystem-sftp-v3 "^3.0"
0 aplikasi Anda. Untuk melakukannya, Anda dapat meneruskan larik konfigurasi ke metode composer require league/flysystem-path-prefixing "^3.0"
7 fasad 'prefix' => 'path/to/videos',
5echo asset['storage/file.txt'];
_5Mengambil File
Metode
'prefix' => 'path/to/videos',
_6 dapat digunakan untuk mengambil isi file. Isi string mentah dari file akan dikembalikan oleh metode. Ingat, semua jalur file harus ditentukan relatif terhadap lokasi "root" diskecho asset['storage/file.txt'];
_6Metode
'prefix' => 'path/to/videos',
_7 dapat digunakan untuk menentukan apakah ada file di diskecho asset['storage/file.txt'];
_7Metode
'prefix' => 'path/to/videos',
_8 dapat digunakan untuk menentukan apakah file hilang dari diskecho asset['storage/file.txt'];
_8Mengunduh File
Metode
'prefix' => 'path/to/videos',
_9 dapat digunakan untuk menghasilkan respons yang memaksa browser pengguna untuk mengunduh file di jalur yang diberikan. Metode 'prefix' => 'path/to/videos',
_9 menerima nama file sebagai argumen kedua untuk metode, yang akan menentukan nama file yang dilihat oleh pengguna yang mengunduh file. Terakhir, Anda dapat meneruskan array header HTTP sebagai argumen ketiga ke metodeecho asset['storage/file.txt'];
_9File URL
Anda dapat menggunakan metode
echo asset['storage/file.txt'];
_01 untuk mendapatkan URL untuk file tertentu. Jika Anda menggunakan driver 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
6, ini biasanya hanya menambahkan echo asset['storage/file.txt'];
03 ke jalur yang diberikan dan mengembalikan URL relatif ke file. Jika Anda menggunakan driver 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_7, URL jarak jauh yang memenuhi syarat akan dikembalikan public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
0Saat menggunakan driver
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
6, semua file yang harus dapat diakses publik harus ditempatkan di direktori composer require league/flysystem-sftp-v3 "^3.0"
7. Selanjutnya, Anda harus di composer require league/flysystem-sftp-v3 "^3.0"
_8 yang menunjuk ke direktori composer require league/flysystem-sftp-v3 "^3.0"
7Peringatan
Saat menggunakan driver6, nilai pengembalian
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
01 tidak disandikan URL. Untuk alasan ini, kami sarankan untuk selalu menyimpan file Anda menggunakan nama yang akan membuat URL yang valid
echo asset['storage/file.txt'];
URL sementara
Menggunakan metode
composer require league/flysystem-path-prefixing "^3.0"
_6, Anda dapat membuat URL sementara ke file yang disimpan menggunakan driver 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
7. Metode ini menerima jalur dan contoh echo asset['storage/file.txt'];
13 yang menentukan kapan URL harus kedaluwarsa public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
1Jika Anda perlu menentukan tambahan , Anda dapat meneruskan larik parameter permintaan sebagai argumen ketiga ke metode
composer require league/flysystem-path-prefixing "^3.0"
6 public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
2Jika Anda perlu menyesuaikan cara pembuatan URL sementara untuk disk penyimpanan tertentu, Anda dapat menggunakan metode
echo asset['storage/file.txt'];
15. Misalnya, ini berguna jika Anda memiliki pengontrol yang memungkinkan Anda mengunduh file yang disimpan melalui disk yang biasanya tidak mendukung URL sementara. Biasanya, metode ini harus dipanggil dari metode ________18______16 penyedia layanan public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
3Kustomisasi Host URL
Jika Anda ingin menentukan sebelumnya host untuk URL yang dihasilkan menggunakan fasad
composer require league/flysystem-path-prefixing "^3.0"
7, Anda dapat menambahkan opsi echo asset['storage/file.txt'];
01 ke larik konfigurasi disk public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
4File Metadata
Selain membaca dan menulis file, Laravel juga dapat memberikan informasi tentang file itu sendiri. Misalnya, metode
echo asset['storage/file.txt'];
_19 dapat digunakan untuk mendapatkan ukuran file dalam byte public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
5Metode
echo asset['storage/file.txt'];
_20 mengembalikan stempel waktu UNIX terakhir kali file diubah public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
6Jenis MIME dari file tertentu dapat diperoleh melalui metode
echo asset['storage/file.txt'];
21 public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
7Jalur File
Anda dapat menggunakan metode
echo asset['storage/file.txt'];
_22 untuk mendapatkan jalur untuk file tertentu. Jika Anda menggunakan driver 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_6, ini akan mengembalikan jalur absolut ke file. Jika Anda menggunakan driver 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_7, metode ini akan mengembalikan jalur relatif ke file di bucket S3 public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
8Menyimpan File
Metode
composer require league/flysystem-path-prefixing "^3.0"
_8 dapat digunakan untuk menyimpan konten file pada disk. Anda juga dapat meneruskan PHP echo asset['storage/file.txt'];
_26 ke metode composer require league/flysystem-path-prefixing "^3.0"
8, yang akan menggunakan dukungan aliran yang mendasari Flysystem. Ingat, semua jalur file harus ditentukan relatif terhadap lokasi "root" yang dikonfigurasi untuk disk public_path['storage'] => storage_path['app/public'],
public_path['images'] => storage_path['app/images'],
_9Gagal Menulis
Jika metode
composer require league/flysystem-path-prefixing "^3.0"
_8 [atau operasi "tulis" lainnya] tidak dapat menulis file ke disk, echo asset['storage/file.txt'];
29 akan dikembalikancomposer require league/flysystem-aws-s3-v3 "^3.0"
_0Jika mau, Anda dapat menentukan opsi
echo asset['storage/file.txt'];
30 dalam larik konfigurasi disk sistem file Anda. Ketika opsi ini didefinisikan sebagai echo asset['storage/file.txt'];
_31, metode "tulis" seperti composer require league/flysystem-path-prefixing "^3.0"
8 akan memunculkan instance echo asset['storage/file.txt'];
33 saat operasi tulis gagalMengawali & Menambahkan Ke File
Metode
echo asset['storage/file.txt'];
_34 dan echo asset['storage/file.txt'];
35 memungkinkan Anda menulis ke awal atau akhir filecomposer require league/flysystem-aws-s3-v3 "^3.0"
_1Menyalin & Memindahkan File
Metode
echo asset['storage/file.txt'];
_36 dapat digunakan untuk menyalin file yang ada ke lokasi baru pada disk, sedangkan metode echo asset['storage/file.txt'];
37 dapat digunakan untuk mengganti nama atau memindahkan file yang ada ke lokasi barucomposer require league/flysystem-aws-s3-v3 "^3.0"
_2Streaming Otomatis
Streaming file ke penyimpanan menawarkan pengurangan penggunaan memori secara signifikan. Jika Anda ingin Laravel secara otomatis mengelola streaming file yang diberikan ke lokasi penyimpanan Anda, Anda dapat menggunakan metode
echo asset['storage/file.txt'];
38 atau echo asset['storage/file.txt'];
39. Metode ini menerima contoh echo asset['storage/file.txt'];
_40 atau echo asset['storage/file.txt'];
41 dan secara otomatis akan mengalirkan file ke lokasi yang Anda inginkancomposer require league/flysystem-aws-s3-v3 "^3.0"
_3Ada beberapa hal penting yang perlu diperhatikan tentang metode ________18______38. Perhatikan bahwa kami hanya menentukan nama direktori dan bukan nama file. Secara default, metode
echo asset['storage/file.txt'];
_38 akan menghasilkan ID unik untuk digunakan sebagai nama file. Ekstensi file akan ditentukan dengan memeriksa jenis MIME file. Path ke file akan dikembalikan dengan metode echo asset['storage/file.txt'];
38 sehingga Anda dapat menyimpan path, termasuk nama file yang dihasilkan, di database AndaMetode
echo asset['storage/file.txt'];
_38 dan echo asset['storage/file.txt'];
39 juga menerima argumen untuk menentukan "visibilitas" dari file yang disimpan. Ini sangat berguna jika Anda menyimpan file di cloud disk seperti Amazon S3 dan ingin file tersebut dapat diakses publik melalui URL yang dihasilkancomposer require league/flysystem-aws-s3-v3 "^3.0"
_4Unggahan File
Dalam aplikasi web, salah satu kasus penggunaan paling umum untuk menyimpan file adalah menyimpan file yang diunggah pengguna seperti foto dan dokumen. Laravel membuatnya sangat mudah untuk menyimpan file yang diunggah menggunakan metode
echo asset['storage/file.txt'];
47 pada instance file yang diunggah. Panggil metode echo asset['storage/file.txt'];
_47 dengan jalur tempat Anda ingin menyimpan file yang diunggahcomposer require league/flysystem-aws-s3-v3 "^3.0"
_5Ada beberapa hal penting yang perlu diperhatikan tentang contoh ini. Perhatikan bahwa kami hanya menentukan nama direktori, bukan nama file. Secara default, metode
echo asset['storage/file.txt'];
_47 akan menghasilkan ID unik untuk digunakan sebagai nama file. Ekstensi file akan ditentukan dengan memeriksa jenis MIME file. Path ke file akan dikembalikan dengan metode echo asset['storage/file.txt'];
47 sehingga Anda dapat menyimpan path, termasuk nama file yang dihasilkan, di database AndaAnda juga dapat memanggil metode
echo asset['storage/file.txt'];
_38 pada fasad composer require league/flysystem-path-prefixing "^3.0"
7 untuk melakukan operasi penyimpanan file yang sama seperti contoh di atascomposer require league/flysystem-aws-s3-v3 "^3.0"
_6Menentukan Nama File
Jika Anda tidak ingin nama file ditetapkan secara otomatis ke file yang disimpan, Anda dapat menggunakan metode
echo asset['storage/file.txt'];
53, yang menerima jalur, nama file, dan disk [opsional] sebagai argumennyacomposer require league/flysystem-aws-s3-v3 "^3.0"
_7Anda juga dapat menggunakan metode
echo asset['storage/file.txt'];
_39 pada fasad composer require league/flysystem-path-prefixing "^3.0"
7, yang akan melakukan operasi penyimpanan file yang sama seperti contoh di atascomposer require league/flysystem-aws-s3-v3 "^3.0"
_8Peringatan
Karakter unicode yang tidak dapat dicetak dan tidak valid akan secara otomatis dihapus dari jalur file. Oleh karena itu, Anda mungkin ingin membersihkan jalur file Anda sebelum meneruskannya ke metode penyimpanan file Laravel. Jalur file dinormalisasi menggunakan metode ________18______56
Menentukan Disk
Secara default, metode ________18______47 file yang diunggah ini akan menggunakan disk default Anda. Jika Anda ingin menentukan disk lain, berikan nama disk sebagai argumen kedua ke metode
echo asset['storage/file.txt'];
47composer require league/flysystem-aws-s3-v3 "^3.0"
_9Jika Anda menggunakan metode
echo asset['storage/file.txt'];
53, Anda dapat meneruskan nama disk sebagai argumen ketiga ke metodecomposer require league/flysystem-ftp "^3.0"
0Informasi File yang Diunggah Lainnya
Jika Anda ingin mendapatkan nama asli dan ekstensi file yang diunggah, Anda dapat melakukannya menggunakan metode
echo asset['storage/file.txt'];
60 dan echo asset['storage/file.txt'];
61composer require league/flysystem-ftp "^3.0"
1Namun, perlu diingat bahwa metode
echo asset['storage/file.txt'];
60 dan echo asset['storage/file.txt'];
61 dianggap tidak aman, karena nama file dan ekstensi dapat dirusak oleh pengguna jahat. Untuk alasan ini, Anda sebaiknya memilih metode echo asset['storage/file.txt'];
64 dan echo asset['storage/file.txt'];
65 untuk mendapatkan nama dan ekstensi untuk unggahan file yang diberikancomposer require league/flysystem-ftp "^3.0"
2Visibilitas File
Dalam integrasi Flysystem Laravel, "visibilitas" adalah abstraksi izin file di berbagai platform. File dapat dideklarasikan
composer require league/flysystem-sftp-v3 "^3.0"
_3 atau echo asset['storage/file.txt'];
67. Ketika sebuah file dinyatakan composer require league/flysystem-sftp-v3 "^3.0"
_3, Anda menunjukkan bahwa file tersebut secara umum dapat diakses oleh orang lain. Misalnya, saat menggunakan driver S3, Anda dapat mengambil URL untuk file composer require league/flysystem-sftp-v3 "^3.0"
3Anda dapat mengatur visibilitas saat menulis file melalui metode
composer require league/flysystem-path-prefixing "^3.0"
8composer require league/flysystem-ftp "^3.0"
3Jika file telah disimpan, visibilitasnya dapat diambil dan diatur melalui metode
echo asset['storage/file.txt'];
71 dan echo asset['storage/file.txt'];
72composer require league/flysystem-ftp "^3.0"
4Saat berinteraksi dengan file yang diunggah, Anda dapat menggunakan metode
echo asset['storage/file.txt'];
73 dan echo asset['storage/file.txt'];
74 untuk menyimpan file yang diunggah dengan visibilitas composer require league/flysystem-sftp-v3 "^3.0"
3composer require league/flysystem-ftp "^3.0"
5File & Visibilitas Lokal
Saat menggunakan driver
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
6, composer require league/flysystem-sftp-v3 "^3.0"
3 diterjemahkan menjadi echo asset['storage/file.txt'];
78 izin untuk direktori dan echo asset['storage/file.txt'];
79 izin untuk file. Anda dapat mengubah pemetaan izin di file konfigurasi composer require league/flysystem-sftp-v3 "^3.0"
0 aplikasi Andacomposer require league/flysystem-ftp "^3.0"
6Menghapus File
Metode
echo asset['storage/file.txt'];
_81 menerima satu nama file atau array file untuk dihapuscomposer require league/flysystem-ftp "^3.0"
7Jika perlu, Anda dapat menentukan disk tempat file harus dihapus
composer require league/flysystem-ftp "^3.0"
8Direktori
Dapatkan Semua File Dalam Direktori
Metode
echo asset['storage/file.txt'];
_82 mengembalikan array dari semua file dalam direktori tertentu. Jika Anda ingin mengambil daftar semua file dalam direktori tertentu termasuk semua subdirektori, Anda dapat menggunakan metode echo asset['storage/file.txt'];
83composer require league/flysystem-ftp "^3.0"
_9Dapatkan Semua Direktori Dalam Direktori
Metode
echo asset['storage/file.txt'];
_84 mengembalikan array dari semua direktori dalam direktori tertentu. Selain itu, Anda dapat menggunakan metode echo asset['storage/file.txt'];
_85 untuk mendapatkan daftar semua direktori dalam direktori tertentu dan semua subdirektorinya 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
0Buat Direktori
Metode
echo asset['storage/file.txt'];
_86 akan membuat direktori tertentu, termasuk subdirektori yang diperlukan 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_1Hapus Direktori
Terakhir, metode
echo asset['storage/file.txt'];
_87 dapat digunakan untuk menghapus direktori dan semua filenya 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_2Sistem File Kustom
Integrasi Flysystem Laravel menyediakan dukungan untuk beberapa "driver" di luar kotak; . Anda dapat membuat driver khusus jika ingin menggunakan salah satu adapter tambahan ini di aplikasi Laravel Anda
Untuk menentukan sistem file khusus, Anda memerlukan adaptor Flysystem. Mari tambahkan adaptor Dropbox yang dikelola komunitas ke proyek kita
'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_3Selanjutnya, Anda dapat mendaftarkan driver dalam metode
echo asset['storage/file.txt'];
16 dari salah satu penyedia layanan aplikasi Anda. Untuk melakukannya, Anda harus menggunakan metode echo asset['storage/file.txt'];
89 dari fasad composer require league/flysystem-path-prefixing "^3.0"
7 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
_4Argumen pertama dari metode
echo asset['storage/file.txt'];
_89 adalah nama driver dan yang kedua adalah penutupan yang menerima variabel echo asset['storage/file.txt'];
92 dan echo asset['storage/file.txt'];
93. Penutupan harus mengembalikan instance echo asset['storage/file.txt'];
94. Variabel echo asset['storage/file.txt'];
_93 berisi nilai yang ditentukan dalam 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
5 untuk disk yang ditentukanSetelah Anda membuat dan mendaftarkan penyedia layanan ekstensi, Anda dapat menggunakan driver
echo asset['storage/file.txt'];
97 di file konfigurasi 'username' => env['FTP_USERNAME'],
'password' => env['FTP_PASSWORD'],
// Optional FTP Settings...
// 'port' => env['FTP_PORT', 21],
// 'root' => env['FTP_ROOT'],
5 Anda