通过ajax时文件插入为空

时间:2018-10-10 04:16:53

标签: php ajax

这是我的ajax提交功能。当我提交此功能时,worklogdetailsidschedule,shift_schedule正确地插入了数据库。但是filename_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 :(得分:2)

尝试使用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.");
        }
    });
});

答案 1 :(得分:2)

我花了很多时间来解决这个问题。 我有这样的解决方案。

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()

分配的这些密钥

答案 2 :(得分:0)

如果将文件上传到服务器,则该文件不能采用JSON格式(除非将文件转换为字符串,例如base64图像)。

改为使用NET::ERR_CERT_COMMON_NAME_INVALID