Как передать данные на ajax с формой и значением глобальной переменной? - PullRequest
0 голосов
/ 31 января 2019

Я загружаю файл на свой сервер и хочу сохранить имя файла в моей базе данных.Я могу сохранить его в своей базе данных.Я также хочу сохранить имя пользователя вместе с именем файла, но проблема в том, что я не могу передать имя пользователя контроллеру с блейда, потому что оно не включено в форму кнопки для загрузки.Имя пользователя является глобальной переменной, есть ли какой-нибудь возможный способ передать его в ajax вместе с формой?Что мне нужно добавить в мой код?Заранее спасибо!

Я пытался передать имя пользователя, как это

data: "refNumber2="+refNumber2+formData,

, но все равно он не передает refNumber.

Это мой HTML-код дляЗагрузка файла:

<form method="post" action="{{URL::to('/store')}} " enctype="multipart/form-data" id="frmuploadFile" class="frmuploadFile">

                            <input name="image" type="file" class="image">

                            <input type="hidden" name="_token" value="{{ csrf_token() }}">

                        <button type="submit" name="btn" id="btn-upload" class="btn btn-default col-sm-15">Upload a File</button>

                    </form>

Это мой ajax:

$('form').on("submit",function(event) {
                event.preventDefault();
                var formData = new FormData($(this)[0]);
                $.ajax({
                    url: "{{ url ('/store')}}",
                    type: 'POST',      
                    data: "refNumber2="+refNumber2+formData,
                    async: true,
                    cache: false,
                    contentType: false,
                    enctype: 'multipart/form-data',
                    processData: false,   
                    success: function(data){
                    }
                });                
            });//form

Это мой контроллер:

public function store(Request $request){
        $refNumber = $request->get('refNumber2');
        if (Input::hasFile('image')){
            echo "UPLOADED <br>";
            $file = Input::file('image');

            $filenameWithExt = $request->file('image')->getClientOriginalName();
            $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
            $extension = $request->file('image')->getClientOriginalExtension();

            $fileNameToStore = $filename.'.'.time().'.'.$extension;

            $file->move('uploads', $fileNameToStore);
            $filename = $file->getClientOriginalName();
        }

        DB::table('i_di_thread')
            ->insert(['refNumber'=>$refNumber,'message'=>$fileNameToStore]);
    }//Upload File

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Вы можете добавить еще одно скрытое поле здесь с именем userName для примера

  <input type="hidden" name="userName" id="userName" value="{{Auth::user()->name}}">

и в вашем контроллере вы можете получить его по

 $request->get('userName')
0 голосов
/ 31 января 2019

Просто добавьте еще одно скрытое поле в поле from и укажите значение глобальной переменной.

<form method="post" action="{{URL::to('/store')}} " enctype="multipart/form-data" id="frmuploadFile" class="frmuploadFile">

  <input name="image" type="file" class="image">

  <input type="hidden" name="_token" value="{{ csrf_token() }}">
  // add another hidden field here
  <input type="hidden" name="refNumber2" id="refNumber2" value="{{ your_global_variable }}">

  <button type="submit" name="btn" id="btn-upload" class="btn btn-default col-sm-15">Upload a File</button>

</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...