Это JQuery часть:Jquery POST изображение и строка с FormData
$(".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[..]
Но это не сработало.
Что мне делать для решения этой проблемы?
Какой браузер вы используете? Проверьте здесь, если вы соответствуете требованиям https://developer.mozilla.org/en/docs/Web/API/FormData#Browser_compatibility. Если вы этого не сделаете, вам придется пойти в старую школу, используя формы –
@LiviuBoboia Я использую mozilla, и я использовал этот код раньше в другом проекте, и это сработало. Однако на этот раз это не сработает. Ajax хорошо публикует formdata, нет проблемы, но на обработчике я не могу получить никаких данных или значений. –
Это очень странно, вы убедились, что имя и идентификаторы для элементов загрузки соответствуют ключам для контекста. Request.Form [...]? –