首页 > 解决方案 > AJAX - PHP - 上传两个输入文件

问题描述

我正在使用 ajax 和 php 在 wordpress 中提交此前端帖子,但在上传功能图像和投资组合部分的图像时遇到问题

每个自定义字段都保存得很好,但是当我集成用于上传图像的代码时,它只会在控制台中向我发送错误 400on admin-ajax,我尝试了不同的事情,例如$('#post_image')[0].files[0];or$('#post_image').prop('files')[0]; 但我得到了相同的错误

现在我只使用这个作为参考来测试特色图像,但我得到了同样的 400 错误

我正在使用的 ajax 文件是

$('#btn-click').on('click', function(){
        var cat_servicios = $('.cat-servicios').find(':selected').val();
        var nombre_empresa = $('#nombre_empresa').val();
        var creacion_empresa = $('#creacion_empresa').val();
        var nit_empresa = $('#nit_empresa').val();
        var pagina_empresa = $('#pagina_empresa').val();
        var no_empleados = $('input[name=no_empleados]:checked').val();
        var post_image = $('#post_image').val();
        var pd_empresa = $('#pd_empresa').val();
        var tempresa = $('input[name=tempresa]:checked').val();
        var cl_empresa = $('.cl_empresa').val();
        var descripcion_empresa = $('#descripcion_empresa').val();
        var certificaciones_empresa = $('#certificaciones_empresa').val();
        var areas_empresa = $('#areas_empresa').val();
        var dep_empresa = $('.dep-empresas').find(':selected').val();
        var mun_empresa = $('.mun-empresas').find(':selected').val();
        var direccion_empresa = $('#direccion_empresa').val();
        var nombre_contacto = $('#nombre_contacto').val();
        var correo_elec1 = $('#correo_elec1').val();
        var correo_elec2 = $('#correo_elec2').val();
        var nro_tlf1 = $('#nro_tlf1').val();
        var nro_tlf2 = $('#nro_tlf2').val();
        var post_image = $('#post_image').prop('files')[0];  
        $.ajax({
            url : ajax_object.ajaxurl,
            type:'POST',
            contentType: false,
            processData: false, 
            data: {
                action:'themedomain_post_if_submitted',
                cat_servicios:cat_servicios,
                nombre_empresa:nombre_empresa,
                creacion_empresa:creacion_empresa,
                nit_empresa:nit_empresa,
                pagina_empresa:pagina_empresa,
                no_empleados:no_empleados,
                pd_empresa:pd_empresa,
                post_image:post_image,
                tempresa:tempresa,
                cl_empresa:cl_empresa,
                descripcion_empresa:descripcion_empresa,
                certificaciones_empresa:certificaciones_empresa,
                areas_empresa:areas_empresa,
                dep_empresa:dep_empresa,
                mun_empresa:mun_empresa,
                direccion_empresa:direccion_empresa,
                nombre_contacto:nombre_contacto,
                correo_elec1:correo_elec1,
                correo_elec2:correo_elec2,
                nro_tlf1:nro_tlf1,
                nro_tlf2:nro_tlf2,
                post_image:post_image,
            },   
            success: function(response){
                $(".success_msg").css("display","block");
                $("#new_post").hide();
            }, error: function(data){
                $(".error_msg").css("display","block");   
            }
        });  
    });

文件的代码php是

if ( isset( $_FILES['post_image'] ) ) {
           $attach_id = media_handle_upload( 'post_image', $post_id );
       
           if ( $attach_id && ! is_wp_error( $attach_id ) ) {
               set_post_thumbnail( $post_id, $attach_id );
           }
       }

post_image 是输入文件的名称

我对 ajax 很陌生,所以也许有一些我只是跳过或不理解的东西

谢谢您的帮助!

标签: phpjqueryajax

解决方案


推荐阅读