【问题标题】:$_FILES returning empty string$_FILES 返回空字符串
【发布时间】:2019-07-12 18:01:56
【问题描述】:

这是我的表单代码

html += `</div>
        <div class="card-footer">
        <form id="messageSendDashboardGroup" enctype="multipart/form-data">
        <div class="image-upload">
        <div class="input-group" >
        <input type="hidden" name="id" value="${id}" />
        <input type="hidden" name="name" value="${name}" />
        <input type="hidden" name="prefix" value="${prefix}" />
        <input type="text" name="message" class="form-control">
        <span class="input-group-append">
        <label for="file-input" style="margin-bottom: 0px;">
        <span class="input-group-text" style="height: 100%;"><i class="fa 
         fa-upload"></i></span>
        <span><input id="file-input" type="file" name="image"></span>
        </label>
        <button type="submit" class="btn btn-danger">Send</button>
        </span>
        </div>
        </div>
        </form>
        </div>`;
    $('.empChatMessagesShowHere').append(html);

它会生成表单

$('#messageSendDashboardGroup').on('submit', function (e) 
{
    e.preventDefault();
    var formData = new FormData(this);

    $.ajax({
        url: base_url + 'dashboard/image_api',
        data: formData,
        type: 'post',
        cache: false,
        contentType: false,
        processData: false,
        success: function (data) 
        {
           console.log(data);
        }
});

在我的控制器中,当我调试 $_FILES 它返回的 emtpy 数组时

function image_api()
{
    debug($_FILES);
}

Array
(
    [image] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

)

我已经尝试了很多东西,但我仍然得到一个空的 $_FILES 数组,请帮助我,我正在使用此表单上传图片。

【问题讨论】:

  • 查看 DevTools 你的脚本发送到服务器的内容
  • 我在服务器端得到了空的 $_FILES 数组
  • 是的,所以请检查您的前端代码。
  • 我做了但没有得到任何帮助
  • 顺便说一下,输入 'post' .. 不应该用单引号。

标签: javascript php jquery


【解决方案1】:

我只是把我的代码改成这个就可以了

html += `</div>
        <div class="card-footer">
        <form id="messageSendDashboardGroup" enctype="multipart/form-data">
        <div class="image-upload">
        <div class="input-group" >
        <input type="hidden" name="id" value="${id}" />
        <input type="hidden" name="name" value="${name}" />
        <input type="hidden" name="prefix" value="${prefix}" />
        <input type="text" name="message" class="form-control">
        <button type="submit" class="btn btn-danger">Send</button>
        <input type="file" name="image" class="mt-2" />
        </div>
        </div>
        </form>
        </div>`;
    $('.empChatMessagesShowHere').append(html);

在我使用输入前置按钮进行文件上传之前,我现在使用的是默认文件上传按钮并且它可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2020-07-11
    • 2015-05-25
    • 2011-05-09
    • 1970-01-01
    • 2012-07-20
    • 2011-12-15
    相关资源
    最近更新 更多