首页 > 解决方案 > 尝试使用 ajax 和 php 上传文件时总是得到 $_FILE empy?

问题描述

我正在使用 ajax 发布表单数据并将文件从客户端上传到服务器(php),

当我必须在服务器端获取文件内容时,我的问题就出现了

出于某种原因,无论我尝试什么,$_FILES 变量似乎都是空的。这是我到目前为止的代码......

<!-- html5 -->

    <form id="uploadImg" enctype="multipart/form-data">
    <label>Panorámica</label>
    <div class="custom-file">
    <input type="file" class="custom-file-input" id="panoramica" name="panoramica" >
    <label class="custom-file-label" for="panoramica">Seleccionar Archivo</label>
    </form>

//jquery

$('#uploadImg').on('submit', function(e){
    e.preventDefault();

        var url = "upfilephp.php";
        jQuery.ajax({
        url: url,
        type: "POST",
        data:  new FormData(this),
        contentype: false,
        cache: false,
        processData: false,
            success: function (data) {                      
                console.log(data)
            },
             error: function(err){
                console.log(err)
            }
        });




//php
<?php
    if(!empty($_FILES['panoramica']['name'])){
        echo 'no problem';          
    }else{
        echo 'img is empty';            
    }
?>

知道如何解决这个问题或我做错了什么吗?

标签: phpjqueryhtmlajax

解决方案


错字。将 contenttype 更改为 contentType。试试这个

$('#uploadImg').on('submit', function(e){
    e.preventDefault();
    var url = "testupload.php";

    jQuery.ajax({
        url: url,
        type: "POST",
        data: new FormData(this),
        processData: false,
        cache: false,
        contentType: false,
        success: function(datas) {
            console.log(datas)

        },
        error: function(err){
            console.log(err)
        }
    });
});
</script>

推荐阅读