Ich erstellte MVC-Projekt und möchte die Datei hochladen. Ich habe mich registriert in der web.configmvc Dateiupload mit httpRuntime maxRequestLength
<httpRuntime maxRequestLength="2000"/>
<customErrors mode="On" redirectMode="ResponseRedirect" defaultRedirect="address here"> </ customErrors>, in Index.aspx <% using (Html.BeginForm ("upload", "home", FormMethod.Post,
new {enctype = "multipart/form-data"})) {%>
<label for="file"> Filename: </ label>
<input type="file" name="file" id="file" />
<input type="submit" />
<%}%>
In HomeController.cs
[HttpPost]
public ActionResult Upload (HttpPostedFileBase file)
{
if (file! = null & & file.ContentLength> 0)
{
if (file.ContentLength> 4096000)
{
return RedirectToAction ("FileTooBig");
}
var fileName = Path.GetFileName (file.FileName);
var path = Path.Combine (Server.MapPath ("~/App_Data/uploads"), fileName);
file.SaveAs (path);
}
return RedirectToAction ("Index");
}
Wenn ich Dateien anhängen mehr als 2 Megabyte DefaultRedirect perfekt in Opera funktioniert, funktioniert aber nicht in Chrome und IE. Ich habe auch Response.Redirect ("Adresse hier") im Application_Error() Ereignis in global.asax verwendet. Es funktioniert auch nicht in Chrome und IE. Was soll ich machen?
Ich muss die Dateigröße vor dem Hochladen überprüfen. Ich kann das im Application_BeginRequest in Global.asax tun, aber wie kann ich die Download-Datei abbrechen, wenn die Größe größer ist als meine Variable maxFileSize? Wenn ich Redirect in diesem Ereignis verwende, wird die Datei zuerst geladen und funktioniert dann Redirect. – Stwr
Sie können eine Datei ohne http-Anfrage nicht überprüfen. Beachten Sie, dass [httpPost] über der actionresult-Methode eine submit-Eingabe benötigt. Nach dem Senden wartet die httpPostFileBase auf die Verarbeitung. Jetzt können Sie Ihre Logik verwenden, um mit der Datei zu tun, was Sie wollen. – Jack
Ich kann die Dateigröße vor dem Hochladen in das Application_BeginRequest() - Ereignis überprüfen, BEVOR die Datei hochgeladen wird. Wenn ich [HttpPost] public ActionResult functionName() verwende, wird die Datei vollständig hochgeladen und dann kann ich die Dateigröße überprüfen. Die zweite Option ist schlecht für dieses Projekt. Aber ich weiß nicht, wie man die Download-Datei abbricht, wenn die Größe größer ist als meine Variable maxFileSize (erste Option). – Stwr