我将网站从本地主机移到共享主机,这很好,但是当我将文件直接存储到public_html上载时我需要: public_html / storage / 我尝试使用类似的东西:
symlink('/home/abdoweb/bmcelarave/storage/app/public', '/bmce/public_html/storage')
问题仍然存在。
我的控制器:
public function addcategory(Request $request){
$title = $request->input('category_name');
$image = $request->file('category-image');
$name = $image->getClientOriginalName();
$image->move(storage_path().'/app/public/category',$name);
$data[] = $name;
$query= DB::table('category')->insert(
[
'title' => $title,
'image' => $name,
"created_at" => Carbon::now()
]);
if($query){
return redirect('categories');
}
}
我的文件夹:
home / abdoweb / {bmcelaravel} <=我的公用文件夹
laravel核心:
home / {bmce} <=核心幼虫
谢谢。
答案 0 :(得分:0)
您可以使用存储驱动程序:
在config / filesystems.php内部:
'disks' => [
'public' => [
'driver' => 'local',
'root' => public_path() . '/uploads',
'url' => env('APP_URL').'/public',
'visibility' => 'public',
]
]
//Now you can move the file to storage like :
Storage::disk('public')->putFile('category', $request->file('category-image'));
答案 1 :(得分:0)
首先,对于这些东西的推荐位置是留在公共路径上,而不要创建新路径,除非有实际原因。您是否真的检查过符号链接已创建?
Laravel有自己的命令,可以创建从storage/app/public
到public/storage
的符号链接(存储文件夹将在之后生成):
php artisan storage:link
但是,如果要创建默认符号链接,则应该像已经创建的那样为自己创建一个。
这是符号链接模式:
ln -s target source
(填写目标和源路径)
因此,如果您实际上从请求中获取了正确的文件,则此代码应该有效:
Storage::putFile($name, $request->file('category-image'));
有关更多详细信息,请查看文件系统documentation