共享主机中的 Laravel 存储链接

AlV*_*ali 4 hosting storage file-upload laravel

我在共享主机上设置存储链接时遇到问题。因此,我无法将任何图像上传到共享主机中的存储文件夹

小智 6

  1. 如果您执行 storage:link 在本地,请删除 public_html/public/storage 中的存储文件夹

  2. 然后在 public_html 文件夹中创建一个 php 文件,例如 mysymlink.php

  3. 将以下代码添加到 mysymlink.php 文件中

$targetFolder = $_SERVER['DOCUMENT_ROOT'].'/storage/app/public';
$linkFolder = $_SERVER['DOCUMENT_ROOT'].'/public/storage';
symlink($targetFolder,$linkFolder);
echo 'Symlink completed';
Run Code Online (Sandbox Code Playgroud)
  1. 转到网站 example.com/mysymlink.php


小智 6

只需创建一条路线并访问一次即可。

Route::get('generate', function (){
    \Illuminate\Support\Facades\Artisan::call('storage:link');
    echo 'ok';
});
Run Code Online (Sandbox Code Playgroud)


Adi*_*kur 2

您可以使用自定义方法将文件上传到公共目录,而不是使用存储外观

if($request->has('image')){
        $img = $request->file('image');
        $ext = $img->getClientOriginalExtension();
        $name = time().'.'.$ext;
        $path = public_path('\img\uploads');
        $img->move($path, $name);
        User::where('id', $user->id)->update([
            'image' => $name
        ]);
    }
Run Code Online (Sandbox Code Playgroud)

  • **-您可以通过另一种方式解决它,在公共文件夹中创建一个 symlinkexample.php 文件并将文件路径运行到浏览器中。** **-然后将在公共文件夹中创建存储文件夹。文件夹路径将为 public/storage,并链接到您的公共文件夹。** ---------------------------------- ------------------------------------------ _**示例**_ ` <?php $targetFolder = $_SERVER['DOCUMENT_ROOT'].'/storage/app/public'; $linkFolder = $_SERVER['DOCUMENT_ROOT'].'/public/storage'; 符号链接($targetFolder,$linkFolder);echo '符号链接过程成功完成'; ?>` (3认同)