Поля данных, такие как имя, адрес и изображения, вставляются в базу данных, но проблема в том, что изображение не сохраняется в папке

#laravel #nuxt.js

#ларавель #nuxt.js

Вопрос:

Поля данных, такие как имя, адрес и изображения, вставляются в базу данных, но проблема в том, что изображение не сохраняется в папке.

хранилище общедоступных функций (запрос $request) {

     $image = $request->file('file');
    $imageName = time().'.'.$image->extension();
    $image->move(public_path('images'),$imageName);

    $vendor = new Vendor();
           $vendor->profileimage = $imageName;

    $vendor->save();

    $vendor = $request->validate($this->validation());
    $value = Vendor::create($vendor);
 

    // if request has default vendor request
    if ($request->default_vendor) {
        $request->user()
            ->setting()
            ->update(['default_vendor_id' => $value->id]);
    }

    return $this->respondWithMessage('Vendor successfully saved.');
}
 

Комментарии:

1. Пожалуйста, разместите соответствующий код просмотра также там, где вы загружаете файл с формой.

Ответ №1:

Вам нужно проверить, получаете ли вы загруженный файл и является ли он действительным

Попробуйте dd($request-> HasFile(‘file’) amp;amp; $request->file(‘file’)->isValid()) для проверки.

 public function store(Request $request) {

    //Get the validated data from the request
    //Assuming that $this->validation() are the validation rules
    $validated = $request->validate($this->validation());

    //Check whether a valid file has been uploaded
    if($request->hasFile('file') amp;amp; $request->file('file')->isValid()) {
        
        $image = $request->file('file');
        $imageName = time().'.'.$image->extension();
        $image->move(public_path('images'),$imageName);

        //Add the filename to the validated data array 
        $validated['profileImage'] = $imageName;
    }

    //Create a new Vendor record from the validated data
    //Exclude the file, as we have stored it already
    //And plus the file key contains file binary data
    //And we do not want to store actual file binary/blob data in db
    $vendor = Vendor::create(Arr::except($validated, ['file']));
 

    // if request has default vendor request
    if ($request->default_vendor) {
        $request->user()
            ->setting()
            ->update(['default_vendor_id' => $value->id]);
    }

    return $this->respondWithMessage('Vendor successfully saved.');
}
 

Ответ №2:

Сначала убедитесь, что тип формы является составным, а затем попробуйте выполнить эту команду :

 php artisan storage:link