php - 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 很陌生,所以也许有一些我只是跳过或不理解的东西
谢谢您的帮助!
解决方案
推荐阅读
- google-chrome-extension - 请求权限后关闭 Chrome 扩展弹出窗口
- c++ - 将元素推回 Std::variant 的向量
- php - 获取所有数组值超过 100 或更多,并获取数组所有值 100 小于
- javascript - tsyringe - 使用重载的构造函数注入依赖项
- c++ - C++ 检查模板实例变量的类型
- mongodb - MongoDB:将数组中的每个项目更改为对象
- android - 运行 AsyncTask 的致命异常
- javascript - Tailwindcss 不适用于 next.js;配置有什么问题?
- datatables - Power BI 比较两个表并显示第一个表中缺失的行
- javascript - 错误:400(错误请求)使用 fetch 将数据发布到本地服务器