Build a directory browser with ColdFusion
Most web servers have directory browsing disabled, but sometimes you want it to work for certain directories. Most web servers also allow you to setup specific settings for your directories for instance you could do it with an .htaccess file on Apache. But if you don't have access to your web server, you can create a directory index pretty easily with ColdFusion's cfdirectory tag.
I have whipped up a simple one you can use, just save the following code as index.cfm in the directory where you want to see a file listing:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title><cfoutput>#Replace(cgi.script_name, "index.cfm", "")#</cfoutput></title>
<style type="text/css">
body,td { font-family: verdana; padding: 2px 0px 2px 0px; color:silver; }
th { border-bottom: 1px solid silver;text-align:left;margin-bottom: 2px; color:black; }
a.sort { text-decoration: none; color: silver; }
a:hover { background-color: blue; color: white; }
p { font-size: x-small; }
</style>
</head>
<body>
<cfparam name="url.sort" default="datelastmodified desc">
<cfdirectory directory="#ExpandPath("./")#" action="list" name="dir" sort="#url.sort#">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<th>Name <a href="?sort=name" class="sort" title="Sort By Name">∨</a></th>
<th>Size (bytes) <a href="?sort=size" class="sort" title="Sort By Size">∨</a></th>
<th>Last Modified <a href="?sort=datelastmodified+desc" class="sort" title="Sort By Date">∨</a></th>
</tr>
<cfoutput query="dir">
<cfif dir.name IS NOT "index.cfm">
<tr>
<td><a href="#dir.name#">#dir.name#</a></td>
<td>#dir.size#</td>
<td>#dir.datelastmodified#</td>
</tr>
</cfif>
</cfoutput>
</table>
<p>Directory Browser by <a href="http://www.petefreitag.com/">Pete Freitag</a></p>
</body>
</html>
You can see a slightly modified version of this script on the daily mashup archives page.
Tweet
Related Entries
- Announcing CFML Weekly Email - October 19, 2012
- Client Variable Cookie CFGLOBALS Includes Session Ids - July 14, 2011
- Maximum Security CFML - cfObjective Slides - May 17, 2011
- Writing Secure CFML Slides from CFUnited 2010 - August 5, 2010
- 10 Ideas to Improve Security in ColdFusion 10 - June 18, 2010
Trackbacks
Comments
Any thoughts?
Here's my attempt: http://uffcanadianpartners.com/agent/files/index2.cfm
Perhaps I'm supposed to change some of that stuff to my own site-specific; but I don't know cf to be able to figure out which. Might you have the time for a quick eyeball? Thanks -- Don
I get a 404 File not Found error when trying to access that file. But chances are if you don't ColdFusion installed. You can get it from Adobe.com
Apache does have a built in mechanism for directory browsing. See my apache cheat sheet for an example: http://www.petefreitag.com/cheatsheets/apache/
Thanks! - J
P.S. Your link to your cheat sheet has a problem.
Many thanks for this post.
Do you know if it's possible to select a folder with CF?
I'm trying to implement a batch upload and processing module and I'd like the user to select a folder containing all the files that need to be uploaded, instead of either selecting each file one by one, or doing multiple upload.
After selecting the folder, I can easily use cfdirectory to list all the files and process each one. This is not a problem. I have tested the following with a hard-coded directory and it works great!
<cfdirectory directory="#variables.selectedDirectory#" action="list" name="qDir">
Now, I want to make it more dynamic, i.e. the #variables.selectedDirectory# would depend on which folder the user would select.
How can we do this in CF?
If you want to let the browser pick a folder then you need to use Flash, or another method.
Post a Comment
Recent Entries
- Firefox Aurora now Supports Content Security Policy 1.0
- Writing Secure CFML cfObjective 2013 Slides
- Upgrading to Java 7 on Linux
- J2EE Sessions in CF10 Uses Secure Cookies
- Learn about ColdFusion Security at cfObjective 2013
- Session Loss and Session Fixation in ColdFusion
- FuseGuard 2.3 Released
- CKEditor Spell Checker Plugin


add to del.icio.us



