Сохранение загруженного файла 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');
        }   
    }
Другие вопросы по тегам