не получить переменные POST после отправки Multipart / form-data - PullRequest
2 голосов
/ 28 марта 2019

Часть на моей странице отвечает за загрузку нескольких изображений, она работала некоторое время, но больше не работает.Я использую 64-битный WampServer версии 3.1.7 и тестирую на localhost.

Я пытался принимать и отправлять данные через ajax вместо отправки html, но я также не получил данные на стороне php, но нана стороне клиента у меня были все данные перед отправкой (FormData()).

HTML-часть:

<div class="div_shadow_here">
    <form id="gallery_data" method="post" enctype="multipart/form-data">
        <input type="hidden" name="formid" value="<?php echo $_SESSION[" formid "]; ?>" />
        <table class="news_table">
            <tr>
                <td>
                    <p class="name_col">Gallery name:</p>
                </td>
                <td>
                    <input class="input_news" id="gallery_title" type="text" name="gallery_title" />
                </td>
            </tr>
            <tr>
                <td>
                    <p class="name_col">Picture(s):</p>
                </td>
                <td>
                    <input class="input_news" id="news_picture_path" type="file" name="picture_path[]" multiple />
                    <label id="label_for_input" for="picture_path">Select picture(s)</label><span id="uploadState"></span>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <div id="img_container"></div>
                </td>
            </tr>
        </table>
        <button class="print_button hidden_a" type="submit" name="login" id="save_news" form="gallery_data">Save</button>
    </form>
</div>

PHP-часть для тестирования:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    echo '<script>console.log("Not empty")</script>';
    if (isset($_POST['formid'])) {
        echo '<script>console.log("'.$_POST['formid'].
        '")</script>';
    }
    if (isset($_POST['gallery_title'])) {
        echo '<script>console.log("'.$_POST['gallery_title'].
        '")</script>';
    }
    if (isset($_FILES['picture_path']['name'])) {
        echo '<script>console.log("'.count($_FILES['picture_path']['name']).
        '")</script>';
    }
} else {
    echo '<script>console.log("Empty")</script>';
}

Я получаю Notice: Undefined index: gallery_title.. ошибки без isset($_POST['gallery_title']) тестирования (то же самое для всех других полей ввода).

Ajax для тестирования:

$('body').on('click', '#save_news', function(e) {
    e.preventDefault();
    var formData = new FormData($(this).parents('form')[0]);

    for (var key of formData.keys()) {
        console.log(key);
    }

    for (var value of formData.values()) {
        console.log(value);
    }

    $.ajax({
        url: 'galleryupload.php',
        type: 'POST',
        success: function(data) {
            alert("Data Uploaded: " + data);
        },
        data: formData,
        cache: false,
        contentType: false,
        processData: false
    });
    return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...