Maison >développement back-end >Tutoriel C#.Net >Comment utiliser le contrôle de téléchargement de fichiers de .NET pour modifier le fichier web.config afin de télécharger des fichiers volumineux
Modifiez le fichier Webcong :
Ce qui suit est le contenu cité :
<system.web> <httpRuntime maxRequestLength="40690" useFullyQualifiedRedirectUrl="true" executionTimeout="6000" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" /> </system.web>
Ceux qui sont étroitement liés au téléchargement sont :
maxRequestLength
Indique ASP. NET Taille maximale de téléchargement de fichier prise en charge.
Cette limite peut être utilisée pour empêcher les attaques par déni de service provoquées par les utilisateurs transmettant un grand nombre de fichiers à ce serveur.
La taille spécifiée est en Ko.
La valeur par défaut est 4096 Ko (4 Mo).
executionTimeout
Indique le nombre maximum de secondes pendant lesquelles une requête est autorisée à s'exécuter avant d'être automatiquement fermée par ASP.NET.
L'unité est la seconde. Réglez cette valeur sur une valeur plus élevée lors du téléchargement de fichiers volumineux.
Si la mémoire du serveur est de 512 Mo, des fichiers de 160 Mo peuvent être téléchargés. (Je ne l'ai pas essayé. C'est l'avis unanime de nombreux posts sur csdn.)
Le paramétrage de web.config est par ici.
Cependant, une fois que la taille du fichier téléchargé dépasse la plage de taille de fichier de ce paramètre, l'erreur suivante se produira : La page ne peut pas être affichée. La page que vous souhaitez afficher est actuellement indisponible. Le site Web rencontre peut-être des difficultés techniques ou vous devrez peut-être ajuster les paramètres de votre navigateur.
Bien que cela ne puisse pas être résolu, nous devons quand même détecter cette erreur ! Ce qu'il faut faire? Étant donné que cette erreur est une erreur de premier plan provoquée par le contrôle de fichier, essayer de l'attraper en utilisant try...catch en arrière-plan ne fonctionnera pas.
J'ai donc pensé à utiliser le mécanisme de page de capture d'erreurs de .NET pour le gérer. C'est faisable.
Ce qui suit est le contenu cité :
1. Configurez d'abord web.config
<customErrors mode="On"/>
2 Créez un nouveau fichier error.aspx spécifiquement pour capturer les erreurs.
3. Ajoutez la commande page à la première page de la page aspx où le fichier est téléchargé. ErrorPage="UploadError.aspx"
4. Ajoutez du code dans error.aspx pour déterminer si le message d'erreur est une erreur de premier plan provoquée par le fichier.
public class UploadError : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { Exception ex = Server.GetLastError(); if (ex != null) { Response.Redirect("../error.aspx"); } else //前台错误ex为空值 { Response.Redirect("uploadexcel.aspx?err=1"); //重新跳转到上传页面, 加上err参数是为了显示错误信息 } }
5. Afficher le message d'erreur.
public class uploadexcel : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { if (Request["err"] == "1") { Page.RegisterStartupScript("budget","<script language = javascript> alert('Upload file has failed ! File size is too large !')</script>"); } } }
Autres façons d'utiliser le contrôle de téléchargement de fichiers de .NET Modifiez le fichier web.config pour télécharger des fichiers volumineux. Pour les articles connexes, veuillez faire attention au chinois PHP. site web!