Ich habe eine Datei Upload-Seite, die auf Knopf klicken Ich rufe eine Methode, wo ich die maximale Größe zu 5 MB zu definieren. Aber wenn ich mehr als das hochlade, wird die Größenfehlermeldung nicht angezeigt. Hier ist mein Code:Fehlermeldung nicht angezeigt, wenn Dateigröße mehr als 5 MB ist
public ActionResult document(HttpPostedFileBase file, Document model)
{
tbldocument doc = new tbldocument();
//Document model = new Document();
doc.DocumentName = model.documentname;
if (ModelState.IsValid)
{
if (file == null)
{
ModelState.AddModelError("File", "Please Upload Your file");
}
else if (file.ContentLength > 0)
{
int MaxContentLength = 1024 * 1024 * 10; //10 MB
string[] AllowedFileExtensions = new string[] { ".jpg", ".gif", ".png", ".pdf", ".docx", ".doc", ".xml", ".odt", ".xlsx", ".ppt" };
if (!AllowedFileExtensions.Contains(file.FileName.Substring(file.FileName.LastIndexOf('.'))))
{
ModelState.AddModelError("File", "Please file of type: " + string.Join(", ", AllowedFileExtensions));
}
else if (file.ContentLength > MaxContentLength)
{
ModelState.AddModelError("File", "Your file is too large, maximum allowed size is: " + MaxContentLength + " MB");
}
else
{
var fileName = Path.GetFileName(file.FileName);
var path = Server.MapPath("~/App_Data/uploads/documents/" + model.projectid + "");
//var pathFile = path + fileName;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
var pathWithfileName = Path.Combine(path, fileName);
file.SaveAs(pathWithfileName);
ModelState.Clear();
tbldocument objdb = new tbldocument();
objdb.DocumentName = model.documentname;
objdb.ProjectId = model.projectid;
objdb.Path = model.path;
objdb.Path = Convert.ToString(pathWithfileName);
// objdb.FileName = file.FileName;
//objdb.FileName = file.FileName;
objdoc.upload(objdb);
//" + projectid + "
ViewBag.Message = "File uploaded successfully. File path : ~/Upload/" + fileName;
}
}
}
return RedirectToAction("ProjectTask", "TblTask");
}
Hier ist der Snap . Anstatt die Nachricht an den Benutzer zeigt, dass die Datei kleiner als 5 MB sein muss, wirft es einen Fehler wie:
Danke für Edit @Stephen Mücke –
Ist diese Methode mit '[HttpPost]' markiert? Und nirgendwo in deinem Code gibst du jemals die Ansicht zurück (deine gerechte Weiterleitung), also ist das Hinzufügen von 'ModelSateError'- und' ViewBag'-Eigenschaften ein wenig sinnlos. –
Dann sollte ich stattdessen ein Modell oder eine Datei zurückgeben? Ich umadressieren, weil wenn Benutzer auf Upload klicken ich umleiten, um Dokumentliste oder Projektliste nicht auf der gleichen Seite –