Jquery 使用 FormData POST 图像和字符串

标签 jquery ajax form-data

这是 JQuery 部分:

            $(".btnGorevOlustur").click(function (e) {

                var fileUpload = $(".fileGorevResim").get(0);
                var files = fileUpload.files;
                var dt = new FormData();
                for (var i = 0; i < files.length; i++) {
                    dt.append(files[i].name, files[i]);
                }

                var gPanoID = id;
                var gListeID = gorevListeID;
                var gBaslik = $(".txtGorevBaslik").val();
                var gAciklama = $(".txtareaGorevAciklama").val();
                var gSure = $(".txtGorevSure").val();

                dt.append("gpid", gPanoID);
                dt.append("glid", gListeID);
                dt.append("gbas", gBaslik);
                dt.append("gacik", gAciklama);
                dt.append("gsur", gSure);


                if (gBaslik != null && gBaslik != "" && gAciklama != null && gAciklama != "" && gSure != null && gSure != "") {
                    $.ajax({
                        type: "POST",
                        url: "PanoHandler.ashx",
                        dataType: "json",
                        data: dt,
                        contentType: false,
                        processData: false,
                    });
                    e.preventDefault();
                }
            });

这是处理程序部分:

        var gorevBaslik = context.Request.Form["gbas"];
        var gorevAciklama = context.Request.Form["gacik"];
        var gorevSure = context.Request.Form["gsur"];
        var gorevPanoID = context.Request.Form["gpid"];
        var gorevListeID = context.Request.Form["glid"];
        var tarih = DateTime.Now.ToString("ddMMyyyyHHmmss");
        if (context.Request.Files.Count > 0)
        {
            HttpFileCollection files = context.Request.Files;
            for (int i = 0; i < files.Count; i++)
            {
                HttpPostedFile file = files[i];
                string fname = context.Server.MapPath("~/img/panofoto/" + file.FileName + tarih);
                file.SaveAs(fname);
                sgFoto = file.FileName + tarih;
            }
        }
        if (!String.IsNullOrEmpty(gorevBaslik) && !String.IsNullOrEmpty(gorevAciklama) && !String.IsNullOrEmpty(gorevSure))
        {
            var gorev = new Pano_Gorev
            {
                Baslik = gorevBaslik,
                Aciklama = gorevAciklama,
                GorevSuresi = gorevSure,
                PanoID = Convert.ToInt32(gorevPanoID),
                ListeID = Convert.ToInt32(gorevListeID),
                Resim = sgFoto,
                Olusturan = 1,
                OlusturmaTarihi = DateTime.Now
            };
            dbo.Pano_Gorev.AddObject(gorev);
            dbo.SaveChanges();
            sresult = true;
            context.Response.Write(sresult);
        }
        else
        {
            sresult = false;
            context.Response.Write(sresult);
        }

问题出在处理程序上,因为所有值都为空。

  context.request.Form[..] //all coming as null. 

我还尝试了以下方法:

context.request[..] 

但这也不起作用。

我应该怎么做才能解决这个问题?

最佳答案

终于找到问题所在了。项目中的jquery文档是旧版本,这就是这些代码不起作用的问题。当我更新 jquery 时,代码可以正常工作。

我修改了一些小错误。

结果,这段代码可以使用,问题也解决了。

关于Jquery 使用 FormData POST 图像和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33692471/

相关文章:

javascript - 如何使用 Jquery/javascript 将递归函数转换为循环函数

javascript - 当我传递参数时,从动态添加的 html 按钮调用 javascript 函数失败

javascript - 如何将href链接的值传递给ajax函数

java - Spring-Boot WebFlux getFormData 无法解析真实的 x-www-form-urlencoded 数据?

c# - 使用 JQuery Ajax 和 ASP.NET 通用处理程序时必须采取的除 XSS 和 CSRF 预防之外的安全措施

javascript - Bootstrap CSS 菜单框类型问题

javascript - 选择包含具有特定值的 div 的 div

ajax - 如何使用 jquery load 方法将文件的内容加载到变量中?

javascript - FormData 添加文件不起作用

node.js - 使用 nodejs 发送 formData POST 请求