文件存储在部署时不在laravel项目上工作

时间:2017-04-30 09:56:32

标签: php jquery sql laravel

我有laravel项目可以在我的localhost服务器上运行,但是当我在我的000webhostapp.com webhost域上部署它时。文件存储无法正常工作。它保存数据,但文件或图像不保存。继承人的链接。 https://vincetestsite.000webhostapp.com/products_list

您可以通过用户名登录 - vince和密码 - 123

以及下面的代码。

    $product_name = $form->input('product_name');
    $description = $form->input('description');
    $pro_price = $form->input('pro_price');

    $product_id = DB::table('products_tbl')->insertGetId([  'product_name' => $product_name,
                                                            'description' => $description,
                                                            'pro_price' => $pro_price]);

    if($form->file('imgfile')){
        $imgfile = $form->file('imgfile');
        $imgfile->storeAs('public/storage/products', $product_id.'.jpg');
    }

1 个答案:

答案 0 :(得分:1)

似乎您的代码试图将文件放在符号文件夹中,这是不正确的。你可能只是不需要知道它现在是什么。

首先,运行此命令:php artisan storage:link

其次,更改您的代码:

$relPathAndName = $file->storePubliclyAs('/public/products', $product_id.'.jpg');

return str_replace('public', 'storage', $relPathAndName);

//Then to use it later: 
asset('storage/products/product_id.jpg')

作为laravel说明,您应该将数据存储在/path/to/yourproject/storage/app/public下。然后,一旦您在此文件夹中创建了文件或文件夹,它就会自动显示在/path/to/yourproject/public/storage

您可以在以下网址了解详情:https://laravel.com/docs/5.4/filesystem

请参阅屏幕截图,了解符号链接的工作原理:http://image.prntscr.com/image/b4cfcf25b317471493855a49199f82d2.png