Как перезаписать файл в базе данных с помощью ajax вызова
Я пытаюсь перезаписать старый файл новым с помощью ajax-вызова .Чистый MVC.
до сих пор я могу восстановить данные из БД, но понятия не имею, как сделать перезапись.
Кто-нибудь может мне помочь?
Что я уже пробовал:
Вот мой контроллер:
[HttpPost] public JsonResult UpdateFile(int id, HttpPostedFileBase postedFile) { byte[] bytes; using (BinaryReader br = new BinaryReader(postedFile.InputStream)) { bytes = br.ReadBytes(postedFile.ContentLength); } using (FileDBEntities db = new FileDBEntities()) { tblFile fupt = db.tblFiles.Where(x => x.id == id).FirstOrDefault(); fupt.Name = Path.GetFileName(postedFile.FileName); fupt.ContentType = postedFile.ContentType; fupt.Data = bytes; db.SaveChanges(); return Json(new { success = true }, JsonRequestBehavior.AllowGet); } }
и мой javascript:
function loadFileData() { $.ajax({ type: "GET", url: "/File/FileIndex", dataType: "JSON", success: function (data) { $.each(data, function (i, val) { var trow = $('<tr/>'); var trowb = $('<tr/>').data("id", val.id); trow.append('<td colspan="2">' + val.Name + " " + '</td>'); trowb.append('<td><input style="width:250px;" type="file" id="choose" /></td><td><input type="button" value="upload" id="upload" /></td>'); tab.append(trow); tab.append(trowb); }); $("#showFiles").html(tab); }, error: function () { alert("Failed! Please try again."); } }); var tab = $('<table style="width:300px" border=1 class=MyTable></table>'); tab.on("click", "#upload", function (e) { //$('#uploadStatus').html("ok"); var tr = $(this).closest("tr"); var id = tr.data("id"); var input = $('#choose').file; $.ajax({ type: "POST", url: "/File/UpdateFile", dataType: "JSON", data: { id: id, pospostedFile: input }, success: function (data) { $('#uploadStatus').html("ok"); loadFileData(); }, error: function () { alert("Failed! Please try again."); } }); }); }
Debbuger говорит мне, что я посылаю "нуль" как "postedFile". Как я могу взять это значение из входных данных и передать его своему контроллеру?
F-ES Sitecore
Вы не можете загрузить файл через ajax таким образом. google для того, как вы загружаете файл через ajax, это очень хорошо документировано.
Member 14803832
Может быть, у вас есть какие-то полезные ссылки, я гуглю уже неделю, но не могу найти ничего, что может быть полезно в моем случае. Я уже сделал это без Аякса, но дальше идти не могу
F-ES Sitecore
Это был первый раз, когда я выпучил глаза на "c# upload file ajax", я уверен, что есть и другие лучшие
https://stackoverflow.com/questions/35783168/jquery-ajax-uploading-a-file-and-other-values-from-client-side