Préface:
Il est souvent utilisé dans des projets pour télécharger des fichiers, des photos et d'autres fonctions, et en même temps, il est nécessaire de limiter la taille des fichiers téléchargés. De nombreux plug-ins utilisent la vérification de la demande d'arrière-plan et la vérification JS frontale est relativement faible. Cet article présente une méthode JS frontale pour juger facilement la taille du fichier de téléchargement.
C'est mieux
<Html> <A-head> <meta http-equiv = "content-type" content = "text / html; charset = utf-8" /> <script type = "text / javascript"> var isie = /msie/i.test(navigator.useragent) &&! window.opera; fonction fileChange (cible, id) {var fileSize = 0; var filetypes = [".jpg", ".png", ".rar", ".txt", ".zip", ".doc", ".ppt", ".xls", ".pdf", ".docx", ".xlsx"]; var filepath = cible.Value; var fileMaxSize = 1024 * 2; // 2m if (filepath) {var isnext = false; var fileend = filepath.substring (filepath.indexof (".")); if (filetypes && filetypes.length> 0) {for (var i = 0; i <filetypes.length; i ++) {if (filetypes [i] == fileend) {isnext = true; casser; }}} if (! isnext) {alert ("Ce type de fichier n'est pas accepté!"); Target.Value = ""; retourne false; }} else {return false; } if (isie &&! Target.files) {var filepath = cible.value; var FileSystem = new activeXObject ("scripting.filesystemObject"); if (! FileSystem.FileExists (filepath)) {alert ("La pièce jointe n'existe pas, veuillez rentrer!"); retourne false; } var file = fileSystem.getFile (filePath); fileSize = file.size; } else {fileSize = cible.files [0] .size; } var size = fileSize / 1024; if (size> fileMaxSize) {alert ("La taille de la fixation ne peut pas être supérieure à" + fileMaxSize / 1024 + "m!"); Target.Value = ""; retourne false; } if (size <= 0) {alert ("La taille de la fixation ne peut pas être 0m!"); Target.Value = ""; retourne false; }} </ script> </ head> <body> <input type = "file" name = "contracFileName" onChange = "fileChange (this);" /> </ body> </html>Le code suivant n'est pas recommandé
Le code est très simple. La clé est de savoir comment utiliser JS pour obtenir le fichier et obtenir la taille du fichier, puis la juger et l'intercepter. Pour diverses raisons historiques, les facteurs de contrôle ActiveX d'IE et la méthode d'obtention de fichiers peuvent être différents des autres navigateurs, donc un peu de jugement est nécessaire.
Code js:
<script type = "text / javascript"> // Déterminez s'il s'agit d'un navigateur IE: /msie/i.test(navigator.useragent) est un simple var isie = /msie/i.test(navigator.useragent) &&! window.opera; fonction fileChange (cible) {var fileSize = 0; if (ISIE &&! Target.files) {// ie Browser var filepath = Target.Value; // Obtenez le chemin absolu pour télécharger un fichier / ** * activeXObject L'objet est un objet JS compatible avec IE et Opera * USAGE: * var newoBj = new ActiveXObject (serverName.TypeName [, emplacement]) * où newObj est une option requise. Renvoie le nom de variable de l'objet ActiveXObject. * ServerName est un must. Fournit le nom de l'application que l'objet est. * typename est un must. Le type ou la classe de l'objet à créer. * L'emplacement est facultatif. Le nom du serveur réseau qui a créé l'objet. *//////////////////////////////////////////////////////////////////////////////////////////////////// * Scripting.FileSystemObject is a built-in component de IIS, utilisé pour exploiter des disques, des dossiers ou des fichiers texte, * Il existe de nombreuses méthodes et attributs NewObj renvoyés * par exemple: var file = newoBj.CreateTextFile ("c: /test.txt", true) Le deuxième paramètre indique si le fichier cible est sur diffusion lorsqu'il existe * file.write ("écriture de contenu"); file.close (); * / var fileSystem = new activeXObject ("scripting.filesystemObject"); // La méthode GetFile (Path) obtient un fichier du disque et revient. var file = fileSystem.getFile (filepath); fileSize = file.size; // Taille de fichier, unité: b} else {// non-ie de FileSize = Target.files [0] .size; } var size = fileSize / 1024/1024; if (size> 1) {alert ("La fixation ne peut pas être supérieure à 1m"); }} </ script>Code html
La copie de code est la suivante:
<input type = "file" onchange = "fileChange (this);" />
Une méthode simple, légère et rapide pour utiliser le code JS pour juger la taille du fichier est OK. Quant à ceux qui sont intéressés par les objets ActiveXObject, vous pouvez aller plus loin. Il peut renvoyer différents objets en fonction des paramètres entrés. Habituellement, les fonctions et les fonctions de l'objet sont également très utiles et puissantes.
C’est tout pour cet article. Est-ce un code très simple et pratique? J'espère que vous l'aimez.