Lister un repertoire, visualiser un fichier (mode txt), effacer un fichier (jscript) corriger

Contenu du snippet

Ce code permet 3 choses :
- Lister un repertoire du serveur.
- Visualiser les fichiers du repertoire en mode texte
- Effacer un fichier.

au moyen de 2 fichiers asp
- lstfile_log.asp
- readfile.asp

Le code est ecrit en JSCRIPT.

Source / Exemple :


<%
/* ***************************************************************************

                              • LE FICHIER lstfile_log.asp ***************
                                                                                                                                                      • */
%> <%@ Language=JScript %> <% /* ************************************************************************** Cette page permet de lister les fichiers dans un repertoire un maximum de cst_MaxFiles fichiers peuvent être listés.
language : Jscript (tester sur XP pro, jsript version 5)
Auteur : D.HIVERT (septembre 2003)
Parametres: (POST ou GET) / -------------------------- => PATH= // indique le chemin reel du repertoire à lister => EDIT= // indiwue si on pourra lire (methode texte) le fichier => DELETE= // indique si on pourra supprimer le fichier depuis la page exemple d'utilisation : / ------------------------ http://monserveur/monrep/lstfile_log.asp?PATH=c:\temp&DELETE=true&EDIT=false pour raffraichir la page appuyer sur le bouton 'delete' Liste des fonctions de la page / ------------------------------- getParam (_param, _default) DelFile (myFile) FolderExist (myFolder) TriTableau (LeTableau) listeFile (l_s_Path) date2string (d)
pages liées ou utilisées / ------------------------- readfile.asp => sert à lire un fichier en mode texte
                                                                                                                                                    • */
/* -------------------------------------------- VARIABLES DE CONFIG DE LA PAGE -------------------------------------------- */ var cst_PathFiles = ""; var cst_EDIT = false; var cst_DELETE = false; /* -------------------------------------------- Definition des constantes -------------------------------------------- */ //pour l'objet File var cstPath = 0; var cstName = 1; var cstSize = 2; var cstDateCreated = 3; var cstDateLastAccessed = 4; var cstDateLastModified = 5; //Pour la page var cst_MaxFiles = 1000; /* -------------------------------------------- recup des variables -------------------------------------------- */ nbFile = getParam("nbFile", ""); btn_Del = getParam("btn_Del", ""); cst_PathFiles = getParam("PATH","")+""; cst_EDIT = getParam("EDIT", ""); cst_DELETE = getParam("DELETE", ""); /* -------------------------------------------- Verification d'execution de la page -------------------------------------------- */ //-Si pas de chemin alors pas de recherche if (cst_PathFiles=="" || cst_PathFiles==null) { Response.write ("<center>Il n'y a pas de chemin indiqué</center>"); Response.end(); } //-Peut on editer les fichiers if (cst_EDIT=='true' || cst_EDIT=='TRUE' || cst_EDIT=='True') { cst_EDIT = true; } //-Peut on supprimer les fichiers if (cst_DELETE=='true' || cst_DELETE=='TRUE' || cst_DELETE=='True') { cst_DELETE = true; } /* -------------------------------------------- Test la coherance de la chaine -------------------------------------------- */ if ( String(cst_PathFiles.substr(cst_PathFiles.length-1,1))!=String("\\") ) { cst_PathFiles += "\\"; } else { } /* -------------------------------------------- On verifie que le chemin existe -------------------------------------------- */ if (!FolderExist(cst_PathFiles)) { Response.write ("<center>Le repertoire <b>"+cst_PathFiles+"</b> n'existe pas </center>"); Response.end(); } /* -------------------------------------------- permet de supprimer les fichiers -------------------------------------------- */ if (btn_Del!="") { var myChk; for (i=0; i<nbFile; i++) { myChk = getParam("chkFile"+i,""); if (myChk!="") { DelFile (myChk); } } } /* -------------------------------------------- recup des fichiers -------------------------------------------- */ var tabFiles; var tabFilesTrie; tabFiles = listeFile (cst_PathFiles); tabFilesTrie = TriTableau (tabFiles); /* ********************************************************************************** */ /* **********************LES FONCTIONS DE LA PAGE************************************ */ /* ********************************************************************************** */ /* ---------------------------------------------------------------------------------- Fonction : getParam Description : récupère un paramètre (méthode GET ou POST) Entrées : nom du paramètre, valeur par défaut Sorties : chaine ---------------------------------------------------------------------------------- */ function getParam(_param, _default) { var r = new String; //on recherche le paramétre dans les paramétres passé en GET if (""+ Request.QueryString(_param) != 'undefined') r = Request.QueryString(_param); //on recherche le paramétre dans les paramétres passé en POST if (""+ Request.Form(_param) != 'undefined') r = Request.Form(_param); //si on a pas de parametre, on retourne la valeur par defaut if (r==null || r=='') r = _default; return r; } /* ---------------------------------------------------------------------------------- fonction : DelFile description : Permet de supprimer un fichier du disk (si le repertoire le permet) entree : nom du fichier sortie : - ---------------------------------------------------------------------------------- */ function DelFile (myFile) { var Fs; try { Fs=new ActiveXObject("Scripting.FileSystemObject"); Fs.deleteFile (myFile+""); } catch (e){ Response.write ("Le fichier "+myFile+" n'est pas effacé<br>"); } } /* ---------------------------------------------------------------------------------- fonction : FolderExist description : Permet de savoir si un repertoire existe entree : tableau à trier sortie : - ---------------------------------------------------------------------------------- */ function FolderExist (myFolder) { var fso; fso = new ActiveXObject("Scripting.FileSystemObject"); return fso.FolderExists(myFolder); } /* ---------------------------------------------------------------------------------- fonction : TriTableau description : Permet renvoyer un tableau Trié issu du tableau transmis en paramétre entree : tableau à trier sortie : - ---------------------------------------------------------------------------------- */ function TriTableau (LeTableau) { var Ligne_Tampon; var NewPasse; var tmpLeTableau, Max; Max = LeTableau.length; tmpLeTableau = new Array(Max); if (Max==null || Max=='undefined') return LeTableau; //-copie le tableau for (i=0; i<Max; i++) { tmpLeTableau[i] = LeTableau[i]; } NewPasse = "true"; while (NewPasse!="false") { //-Chaque élément est comparé à celui qui lui est supérieur dans le classement NewPasse = "false"; for (j=0; j<(Max-1); j++) { //-Test si J et plus grand que J+1 if ( (tmpLeTableau[j]>tmpLeTableau[j + 1]) && tmpLeTableau[j]!=null && tmpLeTableau[j]!="") { Ligne_Tampon = tmpLeTableau[j]; tmpLeTableau[j] = tmpLeTableau[j + 1]; tmpLeTableau[j + 1] = Ligne_Tampon; NewPasse = "true"; } } } return tmpLeTableau; } /* ---------------------------------------------------------------------------------- fonction : listeFile description : Permet de trouver tous les fichiers d'un Repertoire entree : chemin physique sortie : tableau de String note : Organisation des resultats Path;Name;Size;DateCreated;DateLastAccessed;DateLastModified ---------------------------------------------------------------------------------- */ function listeFile (l_s_Path) { var i, s, re; var tab_Files = new Array (cst_MaxFiles); //-Definiton des variables var l_fs //systeme de fichier var i; //-Creation de la variable de Drives-- l_fs = new ActiveXObject("Scripting.FileSystemObject"); //-Creation de la colections de FILES l_folder = l_fs.getFolder(l_s_Path); l_files = new Enumerator(l_folder.files); //-Boucle sur tous les fichiers du répertoires (Extention) i = 0; s = new String(""); for (; !l_files.atEnd() && i<cst_MaxFiles; l_files.moveNext()) { s = l_files.item(); a = s.Path+";"+s.Name+";"+s.Size+";"+s.DateCreated+";"+s.DateLastAccessed+";"+s.DateLastModified; tab_Files[i] = a; i++; } return tab_Files; } /* ---------------------------------------------------------------------------------- fonction : date2string description : Permet de renvoyer une date DD/MM/YYYY HH:MM entree : objet Date sortie : string ---------------------------------------------------------------------------------- */ function date2string (d) { var str=""; var strDate, strMonth, strYear, strHours, strMinutes; strDate = d.getDate(); strMonth = (Number(d.getMonth())+1); strYear = d.getYear(); strHours = d.getHours(); strMinutes = d.getMinutes(); str += strDate <10? "0"+strDate +"/" : strDate+"/"; str += strMonth <10? "0"+strMonth +"/" : strMonth+"/"; str += strYear <10? "0"+strYear +" " : strYear+" "; str += strHours <10? "0"+strHours +":" : strHours+":"; str += strMinutes<10? "0"+strMinutes+"" : strMinutes+""; return str; } %> <HTML> <HEAD> <link rel="stylesheet" type="text/css" href="../style_crue.css"> <STYLE> .texteNoir10 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #000000} .texteNoir12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #000000} .texteNoir10Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #000000; font-weight: bold} .texteNoir12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #000000; font-weight: bold} .texteBleu10 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #11067c} .texteBleu12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #11067c} .texteBleu10Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #11067c; font-weight: bold} .texteBleu12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #11067c; font-weight: bold} .texteGris12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #999999} .texteGris12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #999999; font-weight: bold} .texteBlanc10 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #FFFFFF} .texteBlanc12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #FFFFFF} .texteBlanc10Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #FFFFFF; font-weight: bold} .texteBlanc12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #FFFFFF; font-weight: bold} </STYLE> </HEAD> <BODY bgcolor="ffffff"> <div align="center"> <FORM METHOD="POST"> <TABLE cellspacing="0" cellpadding="0" border="0" width="800"> <TR> <TD bgcolor="11067c" align="center" colspan="5"><font color="#999999" size="2" class="texteGris12Gras"><b>Liste des fichiers du dossier=></font><font color="#FFFFFF" size="2" class="texteBlanc12Gras"><%=cst_PathFiles%></font></TD> </TR> <TR> <TD width="70" align="center"><input type="submit" name="btn_Del" value="delete"></TD> <TD width="600" align="left"><font color="000000" size="1" class="texteNoir10Gras"><b>Nom</b></TD> <TD width="50" align="right"><font color="000000" size="1" class="texteNoir10">Taille</TD> <TD width="5">&nbsp;</TD> <TD align="center" nowrap><font color="000000" size="1" class="texteNoir10">Date modification</TD> </TR> <% var FileItem, FileSize, FileName; var nbFileView=0; for (i=0; i<tabFilesTrie.length; i++) { if (tabFilesTrie[i]!="" && tabFilesTrie[i]!=null && tabFilesTrie[i]!="undefined") { //-recup d'un element FileItem = String(tabFilesTrie[i]).split(";"); //-recup du nom du fichier FileName = FileItem[cstPath]; //-création de la taille du fichier if (FileItem[cstSize]>(1024*1024)) { FileSize = Math.ceil(((Number(FileItem[cstSize])/1024)/1024)) + " Mo"; } else { if (FileItem[cstSize]>1024) { FileSize = Math.ceil((Number(FileItem[cstSize])/1024)) + " ko"; } else { FileSize = FileItem[cstSize] + " oc" } } //-date de dernière modif LastModif = date2string (new Date(FileItem[cstDateLastModified])); Response.write (' <TR>\n'); Response.write (' <TD align=\"center\">'); if (cst_DELETE) { Response.write ('<input type=\"checkbox\" name=\"chkFile' + i + '\" value=\"' + FileName + '\">'); } else { Response.write ('&nbsp;'); } Response.write ('</TD>\n'); Response.write (' <TD bgcolor=\"#99cccc\" nowrap>'); if (cst_EDIT) { Response.write ('<a href=\"readfile.asp?FILENAME='+FileItem[cstPath]+'\" target=\"_blank\">'); } Response.write ('<font color=\"#11067c\" size="1" class=\"texteNoir10\">' + FileItem[cstName] + '</font>'); if (cst_EDIT) { Response.write ('</a>'); } Response.write ('</TD>\n'); Response.write (' <TD bgcolor=\"#99cccc\" align=\"right\">'); Response.write ('<font color=\"#000000\" size=\"1\" class=\"texteNoir10\">' + FileSize + '</font>'); Response.write ('</TD>\n'); Response.write (' <TD>&nbsp;</TD>'); Response.write (' <TD bgcolor=\"#ffffff\" align=\"right\" nowrap>'); Response.write ('<font color=\"#000000\" size=\"1\" class=\"texteNoir10\">' + LastModif + '</font>'); Response.write ('</TD>\n'); Response.write (' </TR>\n'); nbFileView++; } } %> <caption><input type="hidden" name="nbFile" value="<%=i%>"><font size="1" color="#000000">il y a <%=nbFileView%> fichiers dans le dossier</font></caption> </TABLE> </form> </div> </BODY> </HTML> <% /* ***************************************************************************
                              • LE FICHIER readfile.asp ***************
                                                                                                                                                      • */
%> <%@ Language=JScript %> <% /* ************************************************************************** Cette page permet de lister les fichiers dans un repertoire un maximum de cst_MaxFiles fichiers peuvent être listés.
language : Jscript (tester sur XP pro, jsript version 5)
Auteur : D.HIVERT (septembre 2003)
Parametres: (POST ou GET) / -------------------------- => FILENAME= // indique le chemin et le nom du fichier exemple d'utilisation : / ------------------------ http://monserveur/monrep/readfile.asp?FILEMANE=c:\temp\monfichier.txt Liste des fonctions de la page / ------------------------------- getParam (_param, _default) Replace (strOrg, strRec, strRep) FileExist (FileName) ReadFiles (FileName)
pages liées ou utilisées / ------------------------- -
                                                                                                                                                    • */
var FILENAME; /* -------------------------------------------- recup des variables -------------------------------------------- */ FILENAME = getParam ("FILENAME",""); /* -------------------------------------------- On verifie que l'on demande bien d'afficher un fichier -------------------------------------------- */ if (FILENAME==null || FILENAME=="") { Response.write ("<br><center>Il n'y a pas de fichier indiqué</center>"); Response.end(); } /* -------------------------------------------- Le fichier existe, on traite et on affiche -------------------------------------------- */ if (FileExist (FILENAME)) { strFile = ReadFiles (FILENAME); strFile = Replace (strFile,'&', String.fromCharCode(38)+'amp;'); //remplace '&' par son code HTML strFile = Replace (strFile,'<', String.fromCharCode(38)+'lt;'); //remplace '<' par son code HTML strFile = Replace (strFile,'>', String.fromCharCode(38)+'gt;'); //remplace '>' par son code HTML //affichage du fichier Response.write ("<pre>Le fichier est: <b>"+FILENAME+"</b></pre>"); Response.write ("<pre>"); Response.write (strFile); Response.write ("</pre>"); } /* -------------------------------------------- Le fichier n'existe pas -------------------------------------------- */ else { Response.write ("<br><center>Il n'y a pas de fichier à l'endroit indiqué ( "+FILENAME+" )</center>"); Response.end(); } /* ********************************************************************************** */ /* **********************LES FONCTIONS DE LA PAGE************************************ */ /* ********************************************************************************** */ /* ---------------------------------------------------------------------------------- Fonction : getParam Description : récupère un paramètre (méthode GET ou POST) Entrées : nom du paramètre, valeur par défaut Sorties : chaine ---------------------------------------------------------------------------------- */ function getParam(_param, _default) { var r = new String; //on recherche le paramétre dans les paramétres passé en GET if (""+ Request.QueryString(_param) != 'undefined') r = Request.QueryString(_param); //on recherche le paramétre dans les paramétres passé en POST if (""+ Request.Form(_param) != 'undefined') r = Request.Form(_param); //si on a pas de parametre, on retourne la valeur par defaut if (r==null || r=='') r = _default; return r; } /* ---------------------------------------------------------------------------------- Fonction : Replace Description : Permet de remplacer dans une chaine une ocurence par une autre respecte la Casse Entrées : chaine, chaine Sorties : chaine ---------------------------------------------------------------------------------- */ function Replace (strOrg, strRec, strRep) { var tmp = ""; var re = new RegExp(strRec,"gm"); if (strOrg!=null) { tmp += strOrg; tmp = tmp.replace(re,strRep); } return tmp; } /* ---------------------------------------------------------------------------------- Fonction : FileExist Description : Vérifie l'existance d'un fichier Entrées : nom du fichier Sorties : true | false ---------------------------------------------------------------------------------- */ function FileExist (FileName) { var fso; fso = new ActiveXObject("Scripting.FileSystemObject"); return fso.FileExists(FileName); } /* ---------------------------------------------------------------------------------- Fonction : Description : Permet d'ecrire un fichier Texte ligne par ligne Entrées : nom du fichier Sorties : chaine (formatée) ---------------------------------------------------------------------------------- */ function ReadFiles(FileName) { var fso, ts, s; var ForReading = 1; var strFile=""; var nbLine=0; var maxLineRead=1000; //indique le nombre de lignes max à traiter fso = new ActiveXObject("Scripting.FileSystemObject"); // Lire le contenu du fichier. ts = fso.OpenTextFile(FileName, ForReading); while (!ts.AtEndOfStream && nbLine<maxLineRead) { s = ts.ReadLine(); strFile += s + String.fromCharCode(13,10); nbLine++; } ts.Close(); //-Depasse le nombre de ligne max (on l'indique en haut du document) if (nbLine>=maxLineRead) { strFile = "||ONLY "+maxLineRead+" FIRST LINE IS READ||"+ String.fromCharCode(13,10) + strFile; } return strFile; } %>

Conclusion :


Voila.
J'espere avoir ete clair.

Petite note de fin de page :
Si vous voulez effacer un fichier via cette page et que ce fichier est 'resistant', verifiez que
votre utilisateur Internet a les droits d'effacer dans le repertoire.

Salutation.

Une petite Erreur est survenue dans les fichiers compressees, lisez le code pour faire la
correction pour la suppresion des fichiers.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.