Сохранение загруженного файла url в базу данных laravel 5.4
Для этого должно быть простое решение, но я не могу его найти. Поэтому после того, как файл загружен на localhost/localdisk (я делаю это для целей обучения), я хочу сохранить его URL-адрес (который будет готов к добавлению в тег привязки в качестве ссылки для скачивания) в базу данных.
Функция загрузки в контроллер выглядит так:
public function store(Request $request){
if ($request->hasFile('file')) {
$filename = $request->file->getClientOriginalName();
$fileurl = $request->file->path();
$request->file->storeAs('public/uploads', $filename);
$file = new File();
$file->name = $request->name;
$file->description = $request->description;
$file->visible = $request->visible;
$file->file_name = $filename;
$file->file_url = $fileurl;
$file->save();
}else{
return view ('upload.files');
}
}
Функция работает правильно, однако, результат $fileurl не то, что я хочу. В базе данных я вижу: C:\xampp\tmp\phpE5FD.tmp, который явно не является правильным URL. Итак, как мне получить правильный URL для хранения.
1 ответ
Попробуй это
public function store(Request $request){
$this->validate($request, [
'file' => 'required',
]);
$file = new File();
if ($request->hasFile('file')) {
$file = Input::file('file');
//getting timestamp
$timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString());
$file_name = $timestamp. '-' .$file->getClientOriginalName();
$file->move(public_path().'/public/uploaded/', $name);
}
$file->name = $request->name;
$file->description = $request->description;
$file->visible = $request->visible;
$file->file_name = $file_name;
$file->file_url = $file_name;
$file->save();
return view ('upload.files')->with('status', 'File uploaded Seccess');
}
}