本地主机上 Laravel 8 中的存储链接问题

问题描述

  • Laravel 版本:8.35.1
  • PHP 版本:8.0.0

说明:

我正在使用此代码使用 laravel 上传图像:

$product_image = $request->file('product_image');
$product_image_extension = $product_image->extension();
$product_image_name = time() . '.' . $product_image_extension;
$product_image->storeAs('/media/product_images',$product_image_name);
$model->product_image = $product_image_name;

一切正常,文件上传到 storage/app/media/product_images/。

然后,我运行命令

PHP artisan storage:链接

公开创建符号链接。 命令执行如下:

Local NTFS volumes are required to complete the operation.
The [E:\Complete Programming Bootcamp\laravel Work\ecom-project\cyber_shopping\public\storage] link 
has been connected to [E:\Complete Programming Bootcamp\laravel Work\ecom- 
project\cyber_shopping\storage\app/public].
The links have been created.

我正在使用此代码显示图像:

{{asset('storage/media/product_images/' . $list->product_image)}}

但是图片没有显示在前端。

此外,未在公用文件夹中创建存储文件夹。 请帮帮我。

谢谢

解决方法

步骤 1:: 存​​储图片

$path = ‘’;
if( $request->has('product_image') ) {
    $path = $request->file('product_image')->store('media/product_images');
}
$model->product_image = $path;

步骤 2:: 检查存储文件路径

文件将存储在路径中::

——————————————————————————————————————

Storage/app/public/media/product_images/

步骤 3:: 在公共文件夹中链接存储

运行存储链接命令并从公共中删除存储链接文件夹(如果已经存在)

php artisan storage:link

第 4 步:创建全局函数以访问图像 Main Controller.php 文件创建全局存储图像像这样获取函数

public static function getUrl($path)
{
    $url = "";
    if( !empty($path) && Storage::disk('public')->exists($path) )
        $url = Storage::url($path);
    return $url;
}

步骤 5:: 在 Assest 中使用函数来显示图像

<img src="{{ getUrl($list->product_image) }}" />
,

根据 https://github.com/photoncms/cms/issues/8,您尝试在 fat32 驱动器上进行符号链接,但它在该驱动器上不起作用。尝试在 NTFS 驱动器上测试