javascript - 使用ajax发布文件和数据

标签 javascript php jquery ajax

我读过其他关于SO的帖子,类似于我遇到的情况,但我仍然无法得到解决方案

$('#edit-continue').on('click', function(e) {
    e.preventDefault();
    var photo = new FormData();                               <-----
    jQuery.each(jQuery('#photo')[0].files, function(i, file) {<----- SO suggest for file upload
        photo.append('file-' + i, file);                      <-----
    });
    $.ajax({
        type: "POST",
        url: "/templates/staycation/common/edit-profile.php",
        data: {
            id: $('#id').val(),
            email: $('#email').val(),
            birthday: $('#birthday').val(),
            gender: $("input[name='gender']:checked").val(),
            photo: photo,
        },
        success: function(data) {
            console.log('pass');
            console.log(data);
        },
        error: function(data) {
            console.log('not pass');
            console.log(data);
        },
        cache: false,
        contentType: false,
        processData: false, <------ i think my error is here
    });

如果我离开 processData: false, ,则帖子到达为空,通过对我的数组进行回显,所有数据都是空的,在其他情况下,如果我发表评论,控制台会抛出 未捕获的类型错误:非法调用

我需要做的是发送用户输入的值,例如“电子邮件”、“性别”……和个人资料图片,以更新数据库并将图像保存到文件夹中

最佳答案

这对我来说非常有效

// formData will wrap all files and content of form
var formData=new FormData($('#formId')[0]); 
// you can add more data ot formData after this to
$.ajax({
        url     :   'upload.php',
        type    :   'post',
        data    :   formData,
        processData:false,
        contentType:false,
        success :   function(e)
                    {
                        alert('uploaded successfully');
                    },
        error   :   function()
                    {
                        alert('hello from here');   
                    }
    });

关于javascript - 使用ajax发布文件和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37849240/

相关文章:

javascript - 在 jQuery Mobile 中打开菜单面板时页面滚动回到顶部

php - 按值排序数组并存储在变量中

jquery - ClientWidth 和 ClientHeight 未定义

javascript - 在 td jquery 中添加一个 div

javascript - Kendo UI 网格 - 过滤器 - 日期范围

javascript - 如何使用/多个实例动态获取图像大小?

javascript - 当数据库从另一个浏览器/计算机更新时我如何收到通知

php - 使用 PHP cURL 发送 SMS 文本消息的简单 GET 请求

jquery - 使用 jQuery 将 JSON 转换为 XML

javascript - 从 Google map 中删除 KML 叠加层