J'ai créé le projet mvc et je souhaite télécharger le fichier. Je me suis inscrit dans le web.configTélécharger le fichier mvc avec 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" />
<%}%>
Dans 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");
}
Si je joindre des fichiers de plus de 2 méga-octets defaultRedirect fonctionne parfaitement dans Opera, mais ne fonctionne pas dans Chrome et IE. J'ai également utilisé Response.Redirect ("address here") dans l'événement Application_Error() dans global.asax. Cela ne fonctionne pas non plus dans Chrome et IE. Que devrais-je faire?
Je dois vérifier la taille du fichier avant de le télécharger. Je peux le faire dans l'événement Application_BeginRequest dans Global.asax, mais comment annuler le fichier de téléchargement si la taille est supérieure à ma variable maxFileSize? Si j'utilise Redirect dans cet événement, le fichier est d'abord chargé, puis fonctionne Redirect. – Stwr
Vous ne pouvez pas vérifier un fichier sans demande http. Notez que [httpPost] au-dessus de la méthode actionresult nécessite une entrée de soumission. Une fois soumis, httpPostFileBase est en attente de traitement. Maintenant, vous pouvez utiliser votre logique pour faire ce que vous voulez avec le fichier. – Jack
Je peux vérifier la taille du fichier avant de le télécharger dans l'événement Application_BeginRequest() AVANT que le fichier ne soit téléchargé. Si j'utilise [HttpPost] public ActionResult functionName(), le fichier sera entièrement téléchargé et je pourrai vérifier la taille du fichier. La deuxième option est mauvaise pour ce projet. Mais je ne sais pas comment annuler le fichier de téléchargement si la taille est supérieure à ma variable maxFileSize (première option). – Stwr