这是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);
}
问题在于处理程序,因为所有值都为null。
context.request.Form[..] //all coming as null.
我也尝试了以下内容:
context.request[..]
但这也不起作用。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
使用原生javascript。例如,这是html:
<form id="upload_form" enctype="multipart/form-data" method="post">
<input type="file" name="file1" id="file1"><br>
<input type="button" value="Upload File" onclick="uploadFile()">
</form>
这是javascript:
function uploadFile(){
var file = _("file1").files[0];
// alert(file.name+" | "+file.size+" | "+file.type);
var formdata = new FormData();
formdata.append("file1", file);
var ajax = new XMLHttpRequest();
ajax.open("POST", "url");
ajax.send(formdata);
}
答案 1 :(得分:0)
我终于找到了问题。项目中的Jquery文档是旧版本,这就是为什么这些代码不起作用的问题。当我更新jquery时,代码可以正常工作。
我编辑了一些小错误。
在后果中,这段代码可以使用,问题就解决了。