我有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');
}
答案 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