Stockage de fichiers
Stockage de fichiers
- Introduction
- Configuration
- Obtenir une instance de disque
- Récupérer des fichiers
- Enregistrer le fichier
- Supprimer des fichiers
- Répertoire
- Personnaliser le système de fichiers
Introduction à Laravel
Fournit un abstraction du système de fichiers, qui permet de bénéficier du puissant de Frank de Jonge Pack d'extension Flysystem. L'intégration du système de fichiers Laravel fournit des pilotes faciles à utiliser pour travailler avec les systèmes de fichiers locaux, Amazon S3 et le stockage cloud Rackspace. Mieux encore, basculer entre ces options de stockage est simple puisque l'API reste la même pour chaque système.
Configuration
Le fichier de configuration du système de fichiers se trouve à l'adresse config/filesystems.php
. Dans ce fichier, vous pouvez configurer tous les "disques". Chaque disque représente un lecteur de stockage et un emplacement de stockage spécifiques. Des exemples de configurations pour chaque pilote pris en charge sont inclus dans les fichiers de configuration. Par conséquent, modifiez simplement la configuration pour refléter vos préférences de stockage et vos informations d'identification.
Bien sûr, vous pouvez configurer plusieurs disques selon vos besoins, et vous pouvez même faire en sorte que plusieurs disques partagent le même pilote.
Disque public
Le disque public
est destiné aux fichiers qui doivent être accessibles au public. Par défaut, le disque public
utilise le pilote local
et stocke ces fichiers dans le répertoire storage/app/public
. Pour les rendre accessibles sur le réseau, vous devez créer un lien symbolique de public/storage
vers storage/app/public
. Cette approche conserve les fichiers accessibles au public dans le même répertoire, de sorte que lors de l'utilisation d'un système de déploiement sans temps d'arrêt tel que Envoyer, partagez facilement ces fichiers entre différents déploiements. Vous pouvez utiliser la commande Artisan storage:link
pour créer un lien symbolique : public
磁盘适用于要公开访问的文件。默认情况下, public
磁盘使用 local
驱动,并且将这些文件存储在 storage/app/public
目录下。为了使它们能通过网络访问,你需要创建 public/storage
到 storage/app/public
的符号链接。这种方式能把可公开访问文件都保留在同一个目录下,以便在使用零停机时间部署系统如 Envoyer 的时候,就可以轻松地在不同的部署之间共享这些文件。你可以使用 Artisan 命令 storage:link
来创建符号链接:
你可以使用 Artisan 命令 storage:link
来创建符号链接:
php artisan storage:link
当然,一旦一个文件被存储并且已经创建了符号链接,你就可以使用辅助函数 asset
来创建文件的 URL:
echo asset('storage/file.txt');
本地驱动
使用 local
驱动时,所有文件操作都与你在配置文件中定义的 root
目录相关。该目录的默认值是 storage/app
。因此,以下方法会把文件存储在 storage/app/file.txt
中:
Storage::disk('local')->put('file.txt', 'Contents');
驱动程序先决条件
Composer 包
在使用 SFTP、S3 或 Rackspace 等驱动之前,你需要通过 Composer 安装相应的软件包:
- SFTP:
league/flysystem-sftp ~1.0
- Amazon S3:
league/flysystem-aws-s3-v3 ~1.0
- Rackspace:
league/flysystem-rackspace ~1.0
使用缓存适配器是提高性能的一个绝对必要条件。你需要一个额外的包:
- CachedAdapter:
league/flysystem-cached-adapter ~1.0
S3 驱动配置
S3 驱动配置信息位于你的 config/filesystems.php
配置文件中。该文件包含 S3 驱动程序的示例配置数组。 你可以自由使用你自己的 S3 配置和凭证修改此阵列。 为方便起见,这些环境变量与 AWS CLI 使用的命名约定相匹配。
FTP 驱动配置
Laravel 的文件系统集成能很好的支持 FTP,不过 FTP 的配置示例并没有被包含在框架默认的 filesystems.php
storage:link
pour créer un lien symbolique : 'ftp' => [ 'driver' => 'ftp', 'host' => 'ftp.example.com', 'username' => 'your-username', 'password' => 'your-password', // 可选的 FTP 配置项... // 'port' => 21, // 'root' => '', // 'passive' => true, // 'ssl' => true, // 'timeout' => 30, ],
asset
pour créer l'URL du fichier : 🎜'sftp' => [ 'driver' => 'sftp', 'host' => 'example.com', 'username' => 'your-username', 'password' => 'your-password', // 基于 SSH 密钥的身份验证设置... // 'privateKey' => '/path/to/privateKey', // 'password' => 'encryption-password', // 可选的 SFTP 配置... // 'port' => 22, // 'root' => '', // 'timeout' => 30, ],🎜🎜< div name="3370e9" data-unique="3370e9">🎜🎜Pilote local🎜🎜Lors de l'utilisation du pilote
local
, toutes les opérations sur les fichiers sont cohérentes avec le root que vous avez défini dans le code du fichier de configuration> répertoire associé. La valeur par défaut de ce répertoire est storage/app
. Par conséquent, la méthode suivante stockera le fichier dans storage/app/file.txt
: 🎜'rackspace' => [
'driver' => 'rackspace',
'username' => 'your-username',
'key' => 'your-key',
'container' => 'your-container',
'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/',
'region' => 'IAD',
'url_type' => 'publicURL',
],
🎜🎜🎜🎜Prérequis du pilote🎜🎜Package Composer
🎜Lors de l'utilisation de pilotes tels que SFTP, S3 ou Rackspace auparavant , vous deviez installer le package logiciel correspondant via Composer : 🎜- SFTP :
league/flysystem-sftp ~1.0
- Amazon S3 :
league/ flysystem-aws-s3-v3 ~1.0
- Rackspace :
league/flysystem-rackspace ~1.0
🎜L'utilisation d'un adaptateur de cache est une amélioration Un must absolu pour la performance. Vous avez besoin d'un package supplémentaire : 🎜- CachedAdapter :
league/flysystem-cached-adapter ~1.0
🎜Configuration du pilote S3
🎜Les informations de configuration du pilote S3 se trouvent dans votre fichier de configuration config/filesystems.php
. Ce fichier contient un exemple de tableau de configuration pour le pilote S3. Vous êtes libre de modifier cette baie avec votre propre configuration S3 et vos informations d'identification. Pour plus de commodité, ces variables d'environnement correspondent à la convention de dénomination utilisée par l'AWS CLI. 🎜🎜Configuration du pilote FTP
🎜L'intégration du système de fichiers de Laravel peut très bien prendre en charge FTP, mais l'exemple de configuration FTP n'est pas inclus La valeur par défaut du framework < fichier code>filesystems.php. Vous pouvez utiliser l'exemple de configuration suivant si nécessaire : 🎜's3' => [
'driver' => 's3',
// 驱动器其他配置...
'cache' => [
'store' => 'memcached',
'expire' => 600,
'prefix' => 'cache-prefix',
],
],
🎜🎜Configuration du pilote SFTP
Le package d'intégration Flysystem de Laravel fonctionne très bien avec SFTP ; cependant, aucun exemple de configuration n'est inclus dans le fichier de configuration par défaut du framework filesystems.php
. Si vous souhaitez configurer un système de fichiers SFTP, vous pouvez utiliser l'exemple de configuration suivant : filesystems.php
中并没有包含示范配置。如果要配置 SFTP 文件系统,可以使用如下示例配置:
use Illuminate\Support\Facades\Storage;
Storage::put('avatars/1', $fileContents);
Rackspace 驱动器配置
Laravel 的 Flysystem 集成包与 Rackspace 协同得非常好;不过,在该框架的默认配置文件 filesystems.php
中并没有包含示范配置。如果要配置 Rackspace 文件系统,可以使用如下示例配置:
Storage::disk('s3')->put('avatars/1', $fileContents);
缓存
给指定磁盘开启缓存功能,需要在该磁盘的配置项中直接添加 cache
。 cache
选项应该是一个缓存配置的数组,由缓存驱动名称 store
(译者注:文档原始描述文字 disk
与示例代码中的 store
不一致,验证代码后的确应该是 store
,故作此修改。)、 单位为秒的过期时间 expire
,以及缓存前缀 prefix
组成:
$contents = Storage::get('file.jpg');
获取磁盘实例
Storage
门面可用于与任何已配置的磁盘进行交互。例如,你可以使用门面中的 put
方法将头像存储到默认磁盘。如果你使用 Storage
门面中的任何方法,而一开始并没有使用 disk
方法,那么所调用的方法会自动传递给默认的磁盘:
$exists = Storage::disk('s3')->exists('file.jpg');
如果应用程序要与多个磁盘进行互操作,可使用 Storage
门面中的 disk
方法对特定磁盘上的文件进行操作:
return response()->download('file.jpg');
return response()->download('file.jpg', $name, $headers);
检索文件
get
方法可以用于检索文件的内容,此方法返回该文件的原始字符串内容。 切记,所有文件路径的指定都应该相对于为磁盘配置的「root」目录:
use Illuminate\Support\Facades\Storage;
$url = Storage::url('file.jpg');
exists
方法可以用来判断磁盘上是否存在指定的文件:
$url = Storage::temporaryUrl(
'file.jpg', now()->addMinutes(5)
);
下载文件
download
方法可用于生成一个响应,强制用户的浏览器在给定路径下载文件。 download
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
Configuration du lecteur RackspaceLe package d'intégration Flysystem de Laravel fonctionne très bien avec Cependant, Rackspace ; le fichier de configuration par défaut du framework filesystems.php
ne contient pas d'exemples de configuration. Si vous souhaitez configurer un système de fichiers Rackspace, vous pouvez utiliser l'exemple de configuration suivant :
use Illuminate\Support\Facades\Storage;
$size = Storage::size('file.jpg');
🎜🎜 Mise en cache
🎜Pour activer la fonction de cache pour un disque spécifié, vous devez ajouter cache
directement à l'élément de configuration du disque. L'option cache
doit être un tableau de configurations de cache, pilotées par le nom du pilote de cache store
(Note du traducteur : le texte de description original du document disk
> est le même que dans l'exemple de code Le store
est incohérent. Après vérification du code, il devrait bien s'agir de store
, donc cette modification a été effectuée), le délai d'expiration dans secondes expire
, et le préfixe prefix
se compose de : 🎜$time = Storage::lastModified('file.jpg');
🎜🎜🎜🎜Obtenir des instances de disque
🎜La façade Storage
peut être utilisée pour interagir avec n'importe quel disque configuré. Par exemple, vous pouvez utiliser la méthode put
dans la façade pour stocker un avatar sur le disque par défaut. Si vous utilisez une méthode dans la façade Storage
sans utiliser initialement la méthode disk
, la méthode appelée sera automatiquement passée au disque par défaut : 🎜use Illuminate\Support\Facades\Storage;
Storage::put('file.jpg', $contents);
Storage::put('file.jpg', $resource);
🎜Si Pour interagir avec plusieurs disques, une application peut utiliser la méthode disk
dans la façade Storage
pour opérer sur les fichiers d'un disque spécifique : 🎜use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;
// 自动为文件名生成唯一的ID...
Storage::putFile('photos', new File('/path/to/photo'));
// 手动指定文件名...
Storage::putFileAs('photos', new File('/path/to/photo'), 'photo.jpg');
🎜🎜 🎜🎜Récupération de fichiers
🎜La méthode get
peut être utilisée pour récupérer le contenu d'un fichier, cette méthode renvoie le contenu de la chaîne d'origine du fichier. N'oubliez pas que toutes les spécifications de chemin de fichier doivent être relatives au répertoire « racine » configuré pour le disque : 🎜Storage::putFile('photos', new File('/path/to/photo'), 'public');
🎜exists
La méthode peut être utilisée pour déterminer si le fichier spécifié existe sur le disque : 🎜Storage::prepend('file.log', 'Prepended Text');
Storage::append('file.log', 'Appended Text');
🎜 La méthode 🎜🎜🎜Téléchargement de fichiers
🎜download
peut être utilisée pour générer une réponse, force le navigateur de l'utilisateur à télécharger un fichier à un chemin donné. La méthode download
accepte un nom de fichier comme deuxième paramètre de la méthode, qui déterminera le nom de fichier que l'utilisateur verra lorsqu'il téléchargera le fichier. Enfin, vous pouvez passer un en-tête de tableau HTTP comme troisième argument à la méthode : 🎜Storage::copy('old/file.jpg', 'new/file.jpg');
Storage::move('old/file.jpg', 'new/file.jpg');
🎜🎜🎜🎜🎜🎜URL de fichiers
Vous pouvez utiliser la méthode url
pour obtenir l'URL d'un fichier donné. Si vous utilisez le pilote local
, vous ajoutez généralement simplement /storage
au chemin donné et renvoyez une URL relative à ce fichier. Si vous utilisez le pilote s3
ou rackspace
, l'URL distante complète sera renvoyée : url
方法来获取给定文件的 URL。如果你使用的时 local
驱动,一般只是在给定的路径上加上 /storage
并返回一个相对的 URL 到那个文件。如果使用的是 s3
或者是 rackspace
驱动,会返回完整的远程 URL:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class UserAvatarController extends Controller{
/**
* 更新用户头像.
*
* @param Request $request
* @return Response
*/
public function update(Request $request)
{
$path = $request->file('avatar')->store('avatars');
return $path;
}
}
{note} 切记,如果使用的是 local
驱动,则所有想被公开访问的文件都应该放在 storage/app/public
目录下。此外你应该在 public/storage
创建一个符号链接 来指向 storage/app/public
目录。
临时 URLs
当使用 s3
或 rackspace
驱动来存储文件,可以使用 temporaryUrl
方法创建给定文件的临时 URL。这个方法会接收路径和 DateTime
实例来指定 URL 何时过期:
$path = Storage::putFile('avatars', $request->file('avatar'));
自定义本地 URL 主机
如果要使用 local
驱动为存储在磁盘上的文件预定义主机,可以向磁盘配置数组添加一个 url
选项:
$path = $request->file('avatar')->storeAs('avatars', $request->user()->id);
文件元数据
除了读写文件外,Laravel 还可以提供有关文件本身的信息,例如,size
方法可用来获取文件的大小(以字节为单位):
$path = Storage::putFileAs('avatars', $request->file('avatar'), $request->user()->id);
lastModified
方法返回文件最后一次被修改的 UNIX 时间戳:
$path = $request->file('avatar')->store('avatars/'.$request->user()->id, 's3');
保存文件
put
方法可用于将原始文件内容保存到磁盘上。你也可以传递 PHP 的 resource
给 put
use Illuminate\Support\Facades\Storage;
Storage::put('file.jpg', $contents, 'public');
{note} N'oubliez pas que si vous utilisez pilote
local, tous les fichiers qui souhaitent être accessibles publiquement doivent être placés dans le répertoire storage/app/public
. De plus, vous devez créer un lien symbolique dans public/storage
pour pointer vers le storage/app/public
répertoire . URL temporaires
🎜Lors de l'utilisation de s3
ou de rackspace
Pilote pour stocker les fichiers, vous pouvez utiliser la méthode temporaryUrl
pour créer une URL temporaire pour un fichier donné. Cette méthode reçoit un chemin et une instance DateTime
pour spécifier quand l'URL expirera : 🎜$visibility = Storage::getVisibility('file.jpg');
Storage::setVisibility('file.jpg', 'public')
🎜Hôte d'URL locale personnalisée< / h4>🎜Si vous souhaitez utiliser le pilote local
pour prédéfinir des hôtes pour les fichiers stockés sur le disque, vous pouvez ajouter une option url
au tableau de configuration du disque : 🎜use Illuminate\Support\Facades\Storage;
Storage::delete('file.jpg');
Storage::delete(['file.jpg', 'file2.jpg']);
🎜 🎜🎜🎜Métadonnées de fichier🎜🎜En plus de lire et d'écrire des fichiers, Laravel peut également fournir des informations sur le fichier lui-même, tel que , la méthode size
peut être utilisée pour obtenir la taille du fichier (en octets) : 🎜use Illuminate\Support\Facades\Storage;
Storage::disk('s3')->delete('folder_path/file_name.jpg');
🎜 La méthode lastModified
renvoie l'horodatage UNIX de la dernière fois que le fichier a été modifié : 🎜use Illuminate\Support\Facades\Storage;
$files = Storage::files($directory);
$files = Storage::allFiles($directory);
🎜 🎜🎜Stockage des fichiers
🎜Méthode put
Peut être utilisée pour enregistrer le contenu du fichier original sur le disque. Vous pouvez également transmettre une ressource
PHP à la méthode put
, qui utilisera la prise en charge du flux sous-jacent dans le système de fichiers. Il est fortement recommandé d'utiliser cette méthode lorsque vous travaillez avec des fichiers volumineux : 🎜$directories = Storage::directories($directory);
// 递归...
$directories = Storage::allDirectories($directory);
🎜🎜Diffusion automatique
Si vous souhaitez que Laravel diffuse automatiquement un fichier donné vers votre emplacement de stockage, vous pouvez utiliser la méthode putFile
ou putFileAs
. Cette méthode reçoit une instance IlluminateHttpFile
ou IlluminateHttpUploadedFile
et diffuse automatiquement le fichier vers l'emplacement souhaité : putFile
或 putFileAs
方法。这个方法接收 IlluminateHttpFile
或 IlluminateHttpUploadedFile
实例,并自动将文件流式传输到你想要传输的位置:
Storage::makeDirectory($directory);
关于 putFile
方法,有些点需要注意。我们指定的是一个目录名而不是文件名。默认情况下, putFile
方法会生成一个唯一的 ID 作为文件名。文件的扩展名根据检测文件的 MIME 类型来确定。 putFile
方法会返回文件路径,以便你可以将文件路径(包括生成的文件名)存储在数据库中。
putFile
和 putFileAs
方法也接受一个方法来指定存储文件的 「可见性」。如果你将文件存储在诸如 S3 的云盘上,并且想让该文件公开访问,则可以使用以下功能:
Storage::deleteDirectory($directory);
文件数据写入
prepend
和 append
方法允许你在文件的开头或结尾写入数据:
composer require spatie/flysystem-dropbox
复制 & 移动文件
copy
方法用来复制文件到磁盘上的新位置,而 move
方法用来重命名或移动文件到新位置:
<?php
namespace App\Providers;
use Storage;use League\Flysystem\Filesystem;
use Illuminate\Support\ServiceProvider;
use Spatie\Dropbox\Client as DropboxClient;
use Spatie\FlysystemDropbox\DropboxAdapter;
class DropboxServiceProvider extends ServiceProvider{
/**
* 执行注册后引导驱动.
*
* @return void
*/
public function boot()
{
Storage::extend('dropbox', function ($app, $config) {
$client = new DropboxClient(
$config['authorization_token']
);
return new Filesystem(new DropboxAdapter($client));
});
}
/**
* 在容器中注册绑定.
*
* @return void
*/
public function register()
{
//
}
}
文件上传
在 web 应用程序中,最常用到的文件存储的场景的地方就是上传头像,照片和文件。Laravel 上传文件的实例方法 store
可以轻松的处理文件上传存储问题。你只需要调用带有文件保存路径作为参数的 store
方法即可:
'providers' => [
// ...
App\Providers\DropboxServiceProvider::class,
];
上例有几个点需要注意。我们指定的是目录名,而不是文件名。默认情况下, store
方法会自动生成唯一的 ID 作为文件名。文件的扩展名将通过检查文件的 MIME 类型来确定。该文件的路径和文件名会被 store
方法返回,以便后续数据库的存储使用。
你也可以使用 Storage
facade 上的 putFile
方法达到和上例同样的效果:
rrreee指定文件名
如果你不想将文件名自动分配给存储的文件,可以使用 storeAs
方法,该方法接受路径,文件名和 (可选) 磁盘作为其参数:
rrreee你可以使用 Storage
facade 上的 putFileAs
rrreee
À propos de la méthode putFile
, il y a certains points qui nécessitent une attention particulière. Nous spécifions un nom de répertoire plutôt qu'un nom de fichier. Par défaut, la méthode putFile
génère un identifiant unique comme nom de fichier. L'extension du fichier est déterminée en fonction du type MIME du fichier détecté. La méthode putFile
renvoie le chemin du fichier afin que vous puissiez stocker le chemin du fichier (y compris le nom du fichier généré) dans la base de données. Les méthodes putFile
et putFileAs
acceptent également une méthode pour spécifier la "visibilité" du fichier stocké. Si vous stockez un fichier sur un disque cloud tel que S3 et souhaitez que le fichier soit accessible publiquement, vous pouvez utiliser la fonction suivante : 🎜rrreee🎜🎜Écriture de données de fichier 🎜🎜 Les méthodes prepend
et append
permettent d'écrire des données au début ou à la fin du fichier : 🎜rrreee🎜 🎜Copier et déplacer des fichiers🎜🎜La méthode copy
est utilisée pour copier des fichiers vers un nouvel emplacement sur le disque, tandis que la méthode move
est utilisée pour renommer ou déplacer des fichiers vers un nouvel emplacement : 🎜rrreee 🎜🎜🎜Téléchargements de fichiers
🎜Le plus souvent utilisé dans les applications Web La scène de stockage de fichiers est l'endroit où vous téléchargez des avatars, des photos et des fichiers. La méthode d'instance store
de Laravel pour le téléchargement de fichiers peut facilement gérer les problèmes de téléchargement et de stockage de fichiers. Il vous suffit d'appeler la méthode store
avec le chemin de sauvegarde du fichier en paramètre : 🎜rrreee🎜Il y a quelques points à noter dans l'exemple ci-dessus. Nous spécifions le nom du répertoire, pas le nom du fichier. Par défaut, la méthode store
génère automatiquement un identifiant unique comme nom de fichier. L'extension du fichier sera déterminée en vérifiant le type MIME du fichier. Le chemin et le nom du fichier seront renvoyés par la méthode store
pour le stockage ultérieur de la base de données. 🎜🎜Vous pouvez également utiliser la méthode putFile
sur la façade Storage
pour obtenir le même effet que l'exemple ci-dessus : 🎜rrreee🎜🎜Spécifiez le nom du fichier🎜🎜Si vous ne souhaitez pas que le nom du fichier soit automatiquement attribué au fichier stocké, vous pouvez utiliser la méthode storeAs
, qui accepte le chemin, le nom du fichier et ( éventuellement) disque comme paramètres : 🎜 rrreee🎜Vous pouvez utiliser la méthode putFileAs
sur la façade Storage
pour réaliser la même opération sur les fichiers que dans l'exemple ci-dessus : 🎜rrreee🎜🎜Spécifier le disque
Par défaut, la méthode store
utilise le disque par défaut. Si vous devez spécifier d'autres disques, vous pouvez transmettre le nom du disque comme deuxième paramètre de la méthode store
: store
方法使用默认磁盘。如果你需要指定其他的磁盘,可以传入磁盘名作为 store
方法的第二个参数:
rrreee文件可见性
在 Laravel 集成的文件系统中,「可见性」是对多个平台的文件权限的抽象。文件可以声明为 public
或 private
。如果一个文件被声明为 public
,意味着其他人可以访问。例如,使用 S3 驱动时,就可以检索声明为 public
的文件。
你可以通过 put
方法设置文件的可见性:
rrreeegetVisibility
和 setVisibility
方法可以对现存文件的可见性进行查询和设置:
rrreee删除文件
delete
方法接收一个文件名或数组形式的文件名来删除磁盘上的文件:
rrreee必要的话,可以指定磁盘名来删除其下的文件:
rrreee目录
获取目录下的所有的文件
files
方法返回指定目录下的所有文件。如果你想检索指定目录(包括子目录)中所有的文件列表,可以使用 allFiles
方法:
rrreee获取目录下的所有目录
directories
方法返回指定目录下所有目录的数组。此外,你可以使用 allDirectories
方法获取指定目录以及其子目录下所有目录的列表:
rrreee创建目录
makeDirectory
方法会递归创建目录:
rrreee删除目录
deleteDirectory
rrreee
Visibilité des fichiers
Dans le système de fichiers intégré Laravel, la « visibilité » est une abstraction des autorisations de fichiers sur plusieurs plates-formes. Les fichiers peuvent être déclarés public
ou privé
. Si un fichier est déclaré public
, cela signifie que d'autres peuvent y accéder. Par exemple, lorsque vous utilisez le pilote S3, vous pouvez récupérer les fichiers déclarés comme public
. Vous pouvez définir la visibilité des fichiers via la méthode put
: 🎜rrreee🎜Les méthodes getVisibility
et setVisibility
peuvent interroger la visibilité des fichiers existants et paramètres : 🎜rrreee🎜🎜🎜🎜Suppression de fichiers
🎜supprimer code> La méthode reçoit un nom de fichier ou un nom de fichier sous la forme d'un tableau pour supprimer les fichiers sur le disque : 🎜rrreee🎜 Si nécessaire, vous pouvez spécifier le nom du disque pour supprimer les fichiers en dessous : 🎜rrreee🎜🎜🎜 🎜Répertoire
🎜🎜Obtenir tous les fichiers dans le répertoire🎜🎜 La méthode files
renvoie tous les fichiers du répertoire spécifié. Si vous souhaitez récupérer une liste de tous les fichiers d'un répertoire spécifié (y compris les sous-répertoires), vous pouvez utiliser la méthode allFiles
: 🎜rrreee 🎜🎜Obtenir le répertoire Tous les répertoires sous la méthode 🎜🎜directories
renvoie un tableau de tous les répertoires sous le répertoire spécifié. De plus, vous pouvez utiliser la méthode allDirectories
pour obtenir une liste de tous les répertoires sous un répertoire spécifié et ses sous-répertoires : 🎜rrreee🎜🎜 Créer un répertoire🎜🎜 La méthode makeDirectory
créera récursivement le répertoire : 🎜rrreee🎜🎜Supprimer le répertoire🎜🎜deleteDirectory code> supprimera le répertoire spécifié et tous les fichiers qu'il contient : 🎜rrreee🎜🎜🎜🎜🎜🎜Système de fichiers personnalisé
Bien que le système de fichiers de Laravel fournisse des pilotes prêts à l'emploi, il ne se limite pas à ceux-ci et fournit également des adaptateurs pour d'autres systèmes de fichiers. Ces adaptateurs permettent la création de pilotes personnalisés au sein des applications Lavarel.
Pour configurer un système de fichiers personnalisé, vous avez besoin d'un adaptateur Flysystem. Ajoutons maintenant l'adaptateur Dropbox géré par la communauté au projet :
rrreee Ensuite, vous devez créer un fournisseur de services nommé DropboxServiceProvider
. Dans sa méthode boot
, utilisez la méthode extend
de la façade Storage
pour personnaliser le pilote : DropboxServiceProvider
的 服务提供者 。在它的 boot
方法中,使用 Storage
facade 的 extend
方法自定义驱动:
rrreeeextend
方法的第一个参数是驱动的名称,第二个参数是闭包,接受 $app
和 $config
变量。这个闭包必须返回 LeagueFlysystemFilesystem
的实例。 $config
变量包含了磁盘在 config/filesystems.php
中的位置。
接下来,在 config/app.php
配置文件中注册服务提供者:
rrreee当你创建并注册好服务提供者后,就可以通过在 config/filesystems.php
配置文件中添加 dropbox
rrreee
extend
méthode Le premier paramètre est le nom du pilote et le deuxième paramètre est une fermeture qui accepte les variables $app
et $config
. Cette fermeture doit renvoyer une instance de LeagueFlysystemFilesystem
. La variable $config
contient l'emplacement du disque dans config/filesystems.php
. Après avoir créé et enregistré le fournisseur de services, vous pouvez le transmettre dans config/filesystems Ajoutez le Pilote dropbox
vers le fichier de configuration .php
et utilisez-le.
🎜Cet article a été publié pour la première fois sur le site 🎜LearnKu.com🎜. 🎜🎜