2012-11-08 5 views
0

J'essaie de regrouper la sortie de tous les répertoires dans un chemin spécifié ainsi que les fichiers dans chaque répertoire respectif. Actuellement, j'ai:Afficher les répertoires et leurs fichiers

<cfset local.baseWebPath = ExpandPath("./upload/views/files/") /> 
    <cfset custID = session.authUser.getuser_custid() /> 
    <cfset filters = "*.pdf|*.zip|*.doc*|*.ppt*|*.pps*|*.ai*|*.eps*|*.xls*|*.swf|*.rtf|*.psd|*.jpg|*.png|*.tif"> 

    <!---display directory for specific customer---> 
     <cfdirectory 
      action = "list" 
      directory = "#local.baseWebPath##left(custID, 5)#" 
      name = "getFiles" 
      filter = "#filters#" 
      recurse = "no" 
      /> 
<cfoutput query="getFiles"> 
    <!---get the file name---> 
    <cfset fname = ListFirst(getFiles.name, ".")> 
    <!---get the file extenstion---> 
    <cfset exten = ListLast(getFiles.name, ".")> 
    <cfif getFiles.type eq "file" and getFiles.name neq "thumbs.db"> 
      <tr> 
       <td align="absmiddle"><a href="#buildUrl('main.attachDownload?filename=#getFiles.name#')#">#fname#</a></td> 
       <td align="absmiddle"><img src="/art/assets/images/fileTypes/#fileIcon#" title="#exten#"/></td> 
       <td align="absmiddle"> 
        <!---convert the file size from bytes into mb and kb---> 
        <cfif getFiles.size GT "1000000"> 
         #numberformat(getFiles.size*.000001, 9.99)#Mb 
        <cfelse> 
         #numberformat(getFiles.size*.001, 9)#kb 
        </cfif> 
       </td> 
       <td align="absmiddle">#getFiles.dateLastModified#</td> 
       <td align="absmiddle"><a href="#buildUrl('main.deleteFile?filename=#getFiles.name#')#" onClick="alert('Are you sure you want to delete this file?')"><img src="/art/assets/images/delete.png" title="delete file" /></a></td> 
      </tr> 
     </cfif> 
</cfoutput>  

    <!---display all directories and their files for admin---> 
     <cfdirectory 
      action="list" 
      directory="#local.baseWebPath#" 
      name="allDirectories" 
      recurse="true" 
      /> 

La visualisation du répertoire client individuel fonctionne bien. Cependant, lorsque l'administrateur est connecté, tous les répertoires doivent être affichés ainsi que les fichiers regroupés par client. Comment puis-je atteindre cet objectif?

+1

Il y a déjà fichier pour les navigateurs CF - avez-vous adapter un outil objet d'une enquête existante? –

+0

@PeterBoughton: Je ne suis pas au courant. Pouvez-vous m'éclairer s'il vous plaît? – aparker81

+0

http://cffm.riaforge.org/ http://coldfusionfilemanager.riaforge.org/ http://www.bennadel.com/projects/kinky-file-explorer.htm https://encrypted.google .com/recherche? q = coldfusion + fichier + navigateur –

Répondre

0

Vous pouvez utiliser une requête de requêtes pour trier correctement

<cfquery name="getFiles" dbtype="query"> 
SELECT name, size, datelastmodified, directory 
FROM getFiles 
ORDER BY directory 
</cfquery> 

Vous pouvez ensuite utiliser

<cfoutput query="getFiles" group="directory"> 
#getFiles.directory# <!--- format to show only the custID ---> 
    <cfoutput> 
    <!--- outupt table here ---> 
    </cfoutput>   
</cfoutput> 
+0

Merci Matt. Construire votre suggestion, j'ai produit ceci: http://pastebin.com/qb3RS9ts c'est un peu plus proche. Les répertoires sont des en-têtes et les fichiers sont listés en dessous d'eux, mais tous les fichiers sont répertoriés, pas les fichiers associés au répertoire. Qu'est-ce que je rate? – aparker81

+0

En fait, je construis l'exemple dans le CFWACK au chapitre 61. Merci pour l'aide. – aparker81

+0

vous devez utiliser un groupe par et ordonner par la valeur que vous groupez par sinon il ne se regroupe pas correctement –

Questions connexes