THIS IS MY FILE UPLOAD AND DOWNLOAD CODE
[HttpPost]
public ActionResult Save(Rent Rent , FileUpload upload, HttpPostedFileBase file)
{
if (Rent.Id == 0)
_Context.Rent.Add(Rent);
else
{
var rentInDb = _Context.Rent.Single(c => c.Id == Rent.Id);
rentInDb.tenantId = Rent.tenantId;
rentInDb.unitId = Rent.unitId;
rentInDb.startDate = Rent.startDate;
rentInDb.endDate = Rent.endDate;
rentInDb.Amount = Rent.Amount;
rentInDb.leaseStatus = Rent.leaseStatus;
}
_Context.SaveChanges();
var rent = _Context.Rent.Single(r => r.Id == Rent.Id);
var up = Request.Files["file"];
if (up.ContentLength > 0) {
var fileName = Path.GetFileName(file.FileName);
var guid = Guid.NewGuid().ToString();
var path = Path.Combine(Server.MapPath("~/uploads"), guid + fileName);
file.SaveAs(path);
string fl = path.Substring(path.LastIndexOf("\\"));
string[] split = fl.Split('\\');
string newpath = split[1];
string imagepath = "~/uploads/" + newpath;
upload.length = imagepath;
upload.Rent = rent;
_Context.FileUpload.Add(upload);
_Context.SaveChanges();
}
return RedirectToAction("leaseStatus", "Home");
}
public ActionResult Downloads(int id)
{
var fl = _Context.FileUpload.Where(f => f.rentId == id);
var up = Request.Files["file"];
return View(fl );
}
public FileResult Download(string ImageName)
{
var FileVirtualPath = "~/uploads/" + ImageName;
return File(FileVirtualPath, "application/force-download", Path.GetFileName(FileVirtualPath));
}
THIS IS MY VIEW !!
@model IEnumerable<mallform.Models.FileUpload>
@{
ViewBag.Title = "Downloads";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Downloads</h2>
@foreach (var file in Model)
{
<a href=@file.length target="_blank">Download</a>
}
THIS SHOWS STANDARD 404.0 AND SOMETIME hidden element error :( Please help. In my code it includes the upload a file code, then there Is a download action which leads me to download view and In download view, I have a link to download the file by file result. But It always shows me an error. Please tell me if there is an issue with the path or what is going on?