【发布时间】:2021-03-14 21:15:59
【问题描述】:
我在主机中上传我的项目。我上传了一张图片,图片保存在数据库中。并且图像显示不好,但它也显示在我的本地主机中。
配置/文件系统.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
],
web.php
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
Auth::routes();
Route::get('/link', function(){
return Artisan::call('storage:link');
});
它返回显示 0。
控制器
public function update(Request $request)
{
$user = auth()->user();
$path = $user->image ?? null;
if ($request->hasFile('image'))
{
$file = $request->file('image');
$nane = time();
$extension = $file->getClientOriginalExtension();
$fileName = $nane . '.' . $extension;
$path = $file->storeAs('images/users', $fileName, 'public');
}
$user->image = $path;
}
图像保存在数据库中。
图片上传到 storage/app/public/images/users 文件夹。
图片未上传 public/images/users。
那我改一下
$path = Storage::disk('public')->store('images/users/'.$fileName);
我得到了这个代码
【问题讨论】:
-
store 和 storeAs 是 UploadedFile 上可用的方法,而 Storage 上可用的方法是 put、putFile 和 putFileAs
-
这是我第一次使用 Laravel。如果你知道你可以把代码放在这里?