我正在使用storage_path
来保存我的图片,并将我的存储文件夹符号链接到public_html
php artisan storage:link
在本地环境下一切正常,当我上传图片时,它会被上传到存储文件夹并在public
文件夹中出现链接,但是自从我移动到生产环境和生产模式后,我的图片将被上传到存储文件夹,但public_html/storage
中没有任何内容,我无法在我的前端获取它们。
代码
/config/filesystems.php
'public' => [
'driver' => 'local',
'root' => storage_path('app/public/'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
.env
FILESYSTEM_DRIVER=public
控制器示例
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = 'page' . '-' . time() . '.' . $image->getClientOriginalExtension();
$location = storage_path('app/public/images/' . $filename);
Image::make($image)->resize(1200, 600)->save($location);
if(!empty($page->image)){
Storage::delete('images/' . $page->image);
}
$page->image = $filename;
}
有任何想法吗?
public
目录,而是使用了public_html
。我不喜欢这个策略。在public_html
中创建一个公共目录,并将url
设置为env('APP_URL').'/public/storage'
。 - Ohgodwhy'url' => env('APP_URL').'/public/storage'
,但没有任何变化,我仍然无法获取我的图像。 - mafortis$image->getClientOriginalExtension();
吗?这会让我在你的服务器上存储一个 .php 文件并执行其中的任何代码。 - sisve