Laravel-api для загрузки нескольких файлов - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу сделать API-интерфейс laravel для загрузки нескольких файлов, когда я загружаю его, тогда выдает ошибку $ data является неопределенной переменной. Пожалуйста, помогите мне, как удалить эту ошибку ..?

FileUploadController.php

<?php

namespace App\Http\Controllers\API;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use App\Detail;

use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Auth;
class FileUploadController extends Controller
{
    public function uploadFile(Request $request){

        $this->validate($request, [

        'user_sharing_image' => 'required',

        'user_sharing_image.*' => 'mimes:doc,pdf,docx,zip'

        ]);

        if($request->hasfile('user_sharing_image'))

         {
            foreach($request->file('user_sharing_image') as $file)

            {
                $name=$file->getClientOriginalName();

                $file->move(public_path().'/files/', $name);  

                $data[] = $name;  
            }
         }

         $file= new Detail();
         $file->title = $request->title;
         $file->info = $request->info;
         $file->user_id = $request->user()->id;
         $file->user_sharing_image=json_encode($data);

         $file->save();

        return back()->with('success', 'Data Your files has been successfully added');
    }
}

Я использую паспорт laravel для аутентификации и хочу сохранить user_id, но не получаю, пожалуйста, помогите мне решить обе проблемы из этого кода

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

Вы получаете эту ошибку, потому что $data не определено.

До цикла foreach вы можете объявить его как $data = array();

0 голосов
/ 26 февраля 2019

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

     foreach($request->files('user_sharing_image') as $file)
0 голосов
/ 26 февраля 2019

Попробуйте

$data = [];
if($request->hasfile('user_sharing_image'))
 {
    foreach($request->file('user_sharing_image') as $key=>$file)

    {
        $name=$file->getClientOriginalName();    
        $file->move(public_path().'/files/', $name);      
        $data[$key] = $name;  
    }
 }

 $file= new Detail();
 $file->title = $request->title;
 $file->info = $request->info;
 $file->user_id = Auth::user()->id;
 $file->user_sharing_image=json_encode($data);

 $file->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...