@overlord1337

Почему не отправляется изображение через ajax?

Хочу сделать отправку комментария с изображением при помощи ajax и php.
Изображение не отправляется, а комментарий отправляется. в чем проблема?
html форма -
<form action="phpscript/upload.php" method="post" enctype="multipart/form-data" id="commentform">
                    <div class="form-group">
                        <div class="col-md-2">
                            <input id="name" placeholder="введите имя" class="form-control" ></br>
                        </div>
                    </div>
                    <label class="btn btn-success" for="my-file-selector">
                        <input type=file id="my-file-selector"  style="display:none"
                               onchange="$('#upload-file-info').html(this.files[0].name)">
                        Загрузите изображение
                    </label>
                    <span class='label label-info' id="upload-file-info"></span><br/>
                    <label id="commlabel">comment</label>
                    <textarea class="form-control" rows="3" id="comment"></textarea><br/>
                    <button type="button" id="otpravka" class="btn btn-success">Отправить</button>
                </form>

js файл с ajax-
$("#otpravka").on("click",function () {
    let name= $("#name").val().trim();
    let comment= $("#comment").val().trim();
    if(name==""){
        $("#errorm").text("Ввеедите имя");
        return false;
    }else if(comment=="") {
        $("#errorm").text("введите Коммент");
        return false;
    }
    e.preventDefault();
    formData = new FormData($(this)[0]);
    $.ajax({
        url:this.action,
        type:"POST",
        cache:false,
        processData : false,
        contentType : false,
        data:formData,
        beforeSend: function () {
            $("#otpravka").prop("disable",true);
        },
        success: function (data) {
            if(!data)
                alert(fileType);
            else {
                alert(data);
                $("#commentform").trigger("reset");
            }
            $("#otpravka").prop("disable", false);
        }
    });
})

если выведу ПОСТ, то выведется и имя и комментарий. в чем ошибка?
пхп файл -
print_r($_FILES);
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Anton1863
Попробуйте отправку файла делать подобным способом:
var formData = new FormData();
        jQuery.each($('#file_id')[0].files, function(i, file) {
            formData.append('file_name', file);
        });

при таком html-коде для файла:
<input type="file" id="file_id">
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы