0

there should be a simple solution for this, but i cannot find it. So after the file is uploaded to localhost/localdisk (im doing this for learning purposes) I want to save its url (that would be ready to be put in anchor tag as a download link) to database.

Upload function in controller looks like this:

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');
  }  
 }

function is working properly, however, result of $fileurl is not what i want. In database i see: C:\xampp\tmp\phpE5FD.tmp, which is obviously not a proper url. So how do i get the proper url to be stored.

Benua
  • 269
  • 1
  • 3
  • 19

1 Answers1

0

Try this

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');
        }   
    }
Sid Heart
  • 743
  • 3
  • 14
  • 38