Изображение не загружается на сервер - PullRequest
0 голосов
/ 16 мая 2019

Я использую Laravel 5.8 для загрузки файла на сервер через ajax, но не понимаю, что происходит не так. Все остальные данные отправляются за исключением входного файла.

Метод hasFile () всегда возвращает false, а input :: file () возвращает null.

Я знаю, что этот вопрос задавался много раз, но ни одно из решений не помогло мне.

JQuery

$(document).ready(function () {

$('#updateUser').click(function(){

    var form = $('#updateForm');

    var postData = new FormData($("#updateForm")[0]);

    $.ajax({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        cache : false,
        contentType: false,
        processData: false,
        url: form.attr('action'),
        type: form.attr('method'),
        dataType: 'json',
        data: postData,
        success : function(response){
            console.log(response);
        }
    });
})

})

просмотреть файл

<form id="updateForm" class="ui form register-form"  method="POST" action="{{ route('updateUserProfile') }}" enctype="multipart/form-data">
    @csrf

    <div class="field">
        <label>Profile Photo</label>
        <div class="two fields">
            <div class="field">
                <img src="{{ $current_user->profile_photo }}">
            </div>
            <div class="field">
                <input type="file" name="profile_photo" placeholder="Profile Photo" class="" multiple="">
            </div>
        </div>
    </div>

файл контроллера

namespace App\Http\Controllers\Auth;
use Auth;
use App\Functions;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\File;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Input;


public function updateUserProfile(Request $request)
{
    $validators = Validator::make($request->all(), [
        'first_name'    => ['required', 'string', 'max:255'],
        'last_name'     => ['required', 'string', 'max:255'],
        'email'         => ['required', 'string', 'email', 'max:255'],
        'password'      => ['required', 'string', 'min:8', 'confirmed'],
        'mobile_no'     => ['required', 'string', 'max:255'],
        'dob'           => ['required', 'string', 'max:255'],
        'gender'        => ['required', 'string', 'max:255'],
        'country_id'    => ['required', 'string', 'max:255'],
        //'profile_photo' => ['image', 'mime_content_type(jpeg,png,jpg,gif,svg)', 'max:1024'],
        'profile_photo' => 'image'|'mimes:jpg,jpeg,png',
    ]);

    if ($validators->fails()) {
        $result['success'] = false;
        $result['messages'] = $validators->errors()->all();

        return json_encode($result);
    }

    var_dump(input::file('profile_photo'));
    var_dump($request->hasFile('profile_photo'));
}

1 Ответ

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

Поместите эту строку var_dump ($ request-> file ('profile_photo')) в ваш код

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