当前位置: 首页 > 知识库问答 >
问题:

在共享主机上部署后,上载文件无法保存在目录中。拉威尔5.8

周健
2023-03-14

Iam在共享主机上部署我的project web。以及以下教程,将公用(本地)文件夹中的所有内容移动到公用html(托管)

我的结构

(/home/sippaur)

拉维尔

日志

邮件

公共图书馆

公共网页-

>

  • css

    文件

    家啊

    图像

    js

    卡利布拉西

    平民的

    标准作业程序

    主题

    现在我有了一个控制器,可以将这些数据发送到文件夹文件

    我的控制器

     public function store6(Request $request)
    {
        $this->validate($request, [
    
    
        ]);
    
        if($request->hasfile('image'))
    
    
    
            {   $file = $request->file('image');
                $name=$file->getClientOriginalName();
                $file->move(public_path().'/files/', $name);// i think this problem on here  
                $data = $name;  
            }
    
    
        $user = new pemeliharaan;
        $id = Auth::user()->id;
    
        $user->user_id = $id;
        $user->alat_id = $request->alat_id;
        $user->pertanyaan =json_encode($request->except
        (['_token','name','alat_id','status','catatan','image']));
        $user->catatan = $request->catatan;
        $user->image=$data;
        $user->status = $request->status;
    
    
        $user->save();
      // dd($user);
        return redirect('user/show6')->with('success', 'Data Telah Terinput');
    
    }
    

    但是这个图像不能保存在目录文件中。这个名称图像保存在数据库中,但是这个文件没有保存。我如何解决这个问题?

  • 共有1个答案

    夏俊人
    2023-03-14

    也许您已经应用了symlink并将您引导到另一个文件夹?

    首先尝试解决或确保指向正确的路径

    如果所有其他操作都失败,则在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',
        ],
    
        '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'),
        ],
    
    ],
    

    您可以更改root键以明确指向所需文件夹。既然你提到你已经在一个主机上部署或上传了它,你可以试试这个,这是我以前做过的,并且解决了这个问题

    'public' => [
         'driver' => 'local',
         //When I upload my Laravel app in a shared hosting I uncomment the code below, to specifically pinpoint to my "storage" folder of the app
         'root' => '/home/w8p8r839yfqy/public_html/storage/',
    
         //But when I continue coding locally or in my personal machine, I uncomment the code below
         'root' => storage_path('../public/storage/'),
    
         'url' => env('APP_URL').'/storage',
         'visibility' => 'public',
     ],
    
     类似资料:
    • 我部署我laravel 5.4项目在共享主机上使用子域我安装了作曲家,改变了路径的index.php,供应商路径,DB主机,用户名等。 我得到以下错误 致命错误:未捕获意外值异常:在"/存储/日志"中没有现有目录,并且无法构建:在 /vendor/monolog/monolog/src/Monolog/Handler/StreamH中拒绝权限andler.php:171 我尝试了以下命令:php

    • 我在共享主机上部署了一个Laravel 5.5应用程序,但在上传/查看图像时遇到问题。 localhost一切正常,但是当我上传到网上时,我无法访问存储图像的目录。 这里是存储我的图像的地方 它将图像存储在: public_html/nbd/公共/项目/307/my-image.png 这里还有我的图像设置: 我的应用程序位于 public_html/nbd/系统 ...因为我必须将公用文件夹从系

    • 我有个问题。My laravel在共享主机上看不到图像。 我有公共文件夹在~/域/DOMAIN/public_html/APP和其余的文件在~/域/DOMAIN/文件。 我的文件正在上载到~/domains/DOMAIN/files/storage/app/public/uploads/avatars 但在应用程序中,我看不到这一点。 这是上传代码: 你能帮我做什么吗?

    • 我的问题是:如何在共享网络主机的目录(而不是根目录)中运行laravel应用程序? 对于我的一些客户,我在他们选择的共享虚拟主机的根文件夹中运行Laravel应用程序,并从URL中删除 /public部分。为了完成这项工作,我将index.php移动到根文件夹,并将信息从index.php更改为: 现在我知道这可能会导致安全问题,但我已经找到了解决方案,共享网络主机的情况下。 我用来进行此更改的.

    • 我有一个上传文件的功能。在本地主机上,它没有错误。但在我部署到共享主机上之后,它就出现了一个问题。如果是localhost,我不会移动一些文件夹,但在“教程”共享主机上,我需要创建两个文件夹。拉威尔和公众。此Laravel文件夹是项目Laravel上的所有文件,没有公用文件夹 这是我共享主机上的模式 (/home/sippaur) 等 Laravel- > 应用程序 独自创立 配置 数据库 pub

    • 我正在使用Laravel 5.1 要摆脱公共文件夹: > 移动根目录中的所有公用文件夹内容。 已更改