2

In laravel 5.2, I could upload file using below code but could not find a way to store uploaded filename in database.

    $destinationPath = "test/";
    $file = $request->file('profile_pic');
    if($file->isValid()){
        $file->move($destinationPath, $file->getClientOriginalName());
        $user = User::findOrFail(Auth::user()->id);
        $input = $request->all();
        $input['profile_pic']->pathname = $destinationPath.$file->getClientOriginalName();
        $user->update($request->all());
    }

Does anyone know how to store filename in db?

1
  • $filename = $file->getClientOriginalName();This is how to get the name of file and this is how you merge it to inputs Input::merge(array('file_name' => $filename )); Commented May 9, 2016 at 6:58

4 Answers 4

7

Code for uploading files/images and writing real names into database

public function store(Request $request)
{
    $data = $request->all();

    if($file = $request->file('your_file')){

        $name = $file->getClientOriginalName();
        $file->move('folder_where_to_save', $name);
        $data['your_file'] = $name;

    }

    Model_name::create($data); // where $data can be $request->all() or you can manually assign the fields you need
}
Sign up to request clarification or add additional context in comments.

Comments

2

You can try this, It wiil help you:

$destinationPath = "test/";
    $file = $request->file('profile_pic');
    if($file->isValid()){
        $file->move($destinationPath, $file->getClientOriginalName());
        $user = User::findOrFail(Auth::user()->id);
        $input = $request->all();
        $input['profile_pic']->pathname = $destinationPath.$file->getClientOriginalName();
        $user->update($request->all()); // Remove This

        // Add this lines

        $data['YOUR_DB_FIELD_NAME'] = $file->getClientOriginalName();
        $user->update($data);
    }

Comments

2

Check this full code

$destinationPath = 'uploads';
$extension = Input::file('prd_img')->getClientOriginalExtension(); 
$fileName = rand(11111,99999).'.'.$extension;
Input::file('prd_img')->move($destinationPath, $fileName);
$data = array(
    'prd_name' => $prd_name,
    'prd_cat' => $prd_cat,
    'prd_sub_cat' => $prd_sub_cat,
    'prd_img' => $fileName,
    'remember_token' => $remember_token,
    'created_at' => $time,
);
if(DB::table('products')->insert($data)){
    return redirect('add-product')->with('success', 'Product Succssfully Added.');
}else{
    return redirect('add-product')->with('error', 'Something wrong please try again.');
}

Comments

0

I got that. Silly Mistake!!

need to replace line from

$input['profile_pic']->pathname = $destinationPath.$file->getClientOriginalName();

to

$input['profile_pic'] = $destinationPath.$file->getClientOriginalName();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.