Файл вставлен пустым при прохождении через ajax - PullRequest
0 голосов
/ 10 октября 2018

Вот моя функция отправки ajax. Когда я отправляю эту функцию, worklogdetailsidschedule, shift_schedule правильно вставляются в базу данных. Но имя_файла_schedule в базе данных пустое (это файл). Как ее решить?

 $('#scheduleform').submit(function(e){
            e.preventDefault();
            var workLogDetailsIdschedule          = $('#workLogDetailsIdschedule').val();

            var shift_schedule                      = $("#shift_schedule option:selected").val();
            var filename_schedule                 = $('#filename_schedule').val();


        $.ajax({
            type: "POST",
            url: "<?php echo base_url()?>shifts/addscheduleerror/",
            data: {workLogDetailsIdschedule:workLogDetailsIdschedule,shift_schedule:shift_schedule,filename_schedule:filename_schedule,},
            success: function (data) {

              alert("Added Successfully");
                    location.href = "<?php echo base_url()?>shifts/punch";
            },
            error: function () {
                alert("Server Error! Please try again later.");
            }
        });
    });

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Попробуйте использовать form_data и использовать files свойство вместо value

$('#scheduleform').submit(function(e){
    e.preventDefault();

    var workLogDetailsIdschedule          = $('#workLogDetailsIdschedule').val();
    var shift_schedule                    = $("#shift_schedule option:selected").val();
    var filename_schedule                 = $('#filename_schedule')[0].files[0];

    var form_data = new FormData();
    form_data.append('workLogDetailsIdschedule', workLogDetailsIdschedule);
    form_data.append('shift_schedule', shift_schedule);
    form_data.append('filename_schedule', filename_schedule);

    $.ajax({
        type: "POST",
        url: "<?php echo base_url()?>shifts/addscheduleerror/",
        data: form_data,
        success: function (data) {

          alert("Added Successfully");
                location.href = "<?php echo base_url()?>shifts/punch";
        },
        error: function () {
            alert("Server Error! Please try again later.");
        }
    });
});
0 голосов
/ 10 октября 2018

Я трачу так много часов на решение этой проблемы.Я получил решение, как это.

var $data = new FormData();
$data.append('file', $("#photofile").get(0).files[0]);
$data.append('resume', $("#resume").get(0).files[0]);
$data.append('email', $("#email").val());

Все назначить в эти данные и отправить его как ... data: $data, в php-файле поймать эти ключи, которые назначены через $data.append()

0 голосов
/ 10 октября 2018

если вы загружаете файл на свой сервер, то он не может быть в формате JSON (если только вы не конвертируете файл в строку, например, в изображение base64).

, используя вместо этого form data.

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