📅  最后修改于: 2023-12-03 14:43:46.422000             🧑  作者: Mango
在 Laravel 程序开发中,你可能会遇到上传一些媒体文件的需求。然而,在上传这些文件时,你可能会遇到一个错误,错误信息提示媒体文件不能大于 12288 KB。这是为什么呢?本篇文章将会为你解释这个问题以及如何解决它。
Laravel 使用了内置的文件存储服务 Flysystem。Flysystem 不仅支持本地文件系统,还支持许多云存储服务(例如 Amazon S3)。Flysystem 为了控制媒体文件大小,会通过设置 max_size
参数来限制上传的文件大小。这个参数默认值为 12288 KB。
在 Flysystem 配置文件 config/filesystems.php
中,你可以看到以下代码片段:
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
// ...
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
'max_size' => 12288, // 这里
],
// ...
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'max_size' => 12288, // 这里
],
],
这里,你可以看到 public
和 s3
两个磁盘都设置了 max_size
为 12288。这就是媒体文件大小限制的原因。
默认情况下,你不能上传任何大于 12288 KB 的媒体文件。如果你需要上传更大的文件,你需要修改 max_size
参数。
如果你希望上传更大的文件,你可以做如下修改:
'disks' => [
// ...
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
'max_size' => 50000, // 修改为 50000 KB
],
// ...
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'max_size' => 50000, // 修改为 50000 KB
],
],
通过修改 max_size
参数,你可以控制媒体文件上传的最大大小。在实际开发中,你应该根据自己的需求来设置这个参数。
在 Laravel 开发中,媒体文件大小不能大于 12288 KB。这个限制是由 Flysystem 控制的。你可以通过修改 max_size
参数来控制上传文件的最大大小。在实际开发中,你应该根据自己的需求来设置这个参数。