Forum - Beitrag anzeigen

CF-Basics - Re: Cffile action="read" was mach ich falsch

Icon Pfeil Startseite Icon Pfeil Kategorie Icon Pfeil Suche

Icon Forum Beitrag vom 08.10.2015 16:46 (4696 Aufrufe)
Name: cfsandy
Titel: Re: Cffile action="read" was mach ich falsch
Inhalt: Hi,

ich gehe mal davon aus, dass Du dieses Beispiel mal rein als Studienobjekt verwenden willst und nicht damit in Produktion gehst. Ich habe Deinen Code so modifiziert, dass es einmal funktioniert. Ein File einzulesen und gleich darzustellen ist recht gefährlich, insbesondere wenn man den Filenamen auch noch über die url übergibt.

Ich habe ein paar Kommentare dazugeschrieben, die Dir die Orientierung erleichtern soll.

<!--- Filter vorbelegen --->
<cfparam name="filter" default="">
<!--- vollen Pfad des Directory ermitteln --->
<cfparam name="directory" default="#expandPath('150903T')#">
<!--- Filename leer, wenn kein Filename übergeben wurde --->
<cfparam name="url.filename" default="">
<h3>cfdirectory-Test</h3>

<cfif len( trim( url.filename ) )>
<!--- gibt es einen Filenamen der über die URL kommt, dann lesen wir das File ein, sonst tun wir nichts --->
<cfset fileToRead = expandPath( url.filename )>
<cffile action="read"
file="#fileToRead#"
variable="textdokument">
<cfoutput>
<div style="border: 1px dotted red; padding: 5px;">#textdokument#</div>
</cfoutput>
</cfif>

<h4>Verzeichnis: <cfoutput>#directory#</cfoutput></h4>
<!--- Anzeige des Dir eingeschränkt auf Files, directories können wir ohnehin nicht einlesen
Filter leer, bedeutet wir lesen alle files ein, sonst nur files die Filterzeichen enthalten --->
<cfdirectory
directory = "#directory#"
action= "list"
name = "meinVerzeichnis"
sort = "name, Size"
type = "file"
filter = "*#filter#*"
>

<!--- Dir auflisten - um Himmelswillen, warum mit cfTable? eine schön mit CSS formatierte HTML Tabelle würde ich vorziehen --->
<cftable border="2"
query="meinVerzeichnis"
htmltable
colheaders>
<!--- Die Zelle mit dem Filenamen versehen wir mit einem Link, der die Seite wieder aufruft und den Filenamen übergibt --->
<cfcol
header="Name:"
text='<a href="msuche.cfm?filename=#Name#">#Name#</a>'>
<cfcol
header="Gr&ouml;&szlig;e:"
text="#Size#">
</cftable>

<!--- Also anstatt so einer Form würde ich ganz einfach einen Link machen, der schön mit CSS auch als Button formatiert werden kann. Die Form, noch dazu mit GET ist ein overkill --->
<form method="get" action="msuche.cfm">
<button type="submit">Zur&uuml;ck</button>
</form>

Viel Spaß beim Testen!

Andreas Schuldhaus
ATGInfotech
WEB: www.atginfotech.com
Twitter: @cfexpert

Antworten

Bitte melden Sie sich kostenlos an, um eine Antwort auf diesen Beitrag zu erstellen.


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen