Laravel - Как перехватить данные Ajax Request Payload? - PullRequest
0 голосов
/ 16 мая 2018

Не повторяющийся вопрос !!!


Вот мой код, используя Laravel 5.4 .


Форма в файле .blade.php:

<form id="read-data-form" name="form" method="post" enctype="multipart/form-data" class="form-horizontal">
    <div class="row">
        <div class="col-md-6">
            <div class="form-group">
                <input name="comCode" id="comCode" type="hidden" value=""/>
                <label><span class="text-danger">*</span> Upload File :</label>
                <input name="file" id="fileToUpload" type="file" accept="text/*" />
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-6"></div>
        <div class="col-md-6 ">
            <div class="text-right">
                <button type="submit" class="btn operations-btn btn-default" id="upload">Upload</button>
                <button type="button" class="btn operations-btn btn-default" id="stop">Stop</button>
            </div>
        </div>
    </div>
</form>

Ajax-запрос в файле .js:

$("form #read-data-form").submit(function(e) {
    e.preventDefault();  

    var formData = new FormData(this);

    var promise = $.ajax({
        url: 'read_data/file/check',
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
        type: 'POST',
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        encode: true
    });
    promise.done(function(response){
    });
    promise.fail(function(error){
    });
    promise.always(function(){
    });
}

Консоль браузера> Сеть> Заголовки> Запрос полезной нагрузки:

enter image description here

Маршрут в файле web.php:

Route::post('read_data/file/check', 'ReadDataController@checkFile');

Метод checkFile () в файле ReadDataController.php:

public function checkFile(Request $request)
{
    $comCode = trim($request->comCode);

    $file = $request->file('file');
    dd($file);
} 

Консоль браузера> Сеть> Предварительный просмотр> Запрос полезной нагрузки:

Вот как выводится dd ().
enter image description here


Проблема:

Файл не может быть захвачен как в обычной форме 'multipart / form-data' без запроса ajax.

1 Ответ

0 голосов
/ 16 мая 2018

OK. Наконец, у меня есть решение, которое дает старший человек.


Удален этот код:

$file = $request->file('file'); 

Добавлены следующие коды:

$uploadDirPath = 'C:/uploaded_files/';
$uploadFile = "moved_uploded_file.txt";

$request->file('file')->move($uploadDirPath, $uploadFile);
$uploaded_file = $uploadDirPath.$uploadFile;
...