grOOvekill@
LegendVienna Badass
|
S'gott, ich fingere gerade an einem ASP Skript herum, das ein Kollege von mir erstellt hat. Eines vorweg: Ich bin schon keine PHP Leuchte, aber von ASP hab ich sogar noch weniger Ahnung. Folgendes will ich aber versuchen: An einer Stelle werden Dateien eines Webverzeichnisses eingelesen und anhand einer Tabelle ausgegeben. Dabei wird zuerst ein Image ausgegeben, dann der Dateiname inklusive Extension. Nun wird, egal um welchen Dateityp es sich handelt, immer das gleiche Image angezeigt, was natürlich ein wenig öd ist. Ich dachte daran, für die gängigsten Dateitypen eigene Images zu erstellen, die dann bei den betreffenden Dateien angezeigt werden (jpg, gif, zip, usw.). Nun habe ich das Problem, dass ich keine Ahnung habe, wie man das in ASP bewerkstelligt. Ich nehme mal an, dass ich innerhalb der Schleife, die die Dateien des Verzeichnisses einliest, eine Abfrage einbaue und nachsehe, um welche Art von Datei es sich dabei handelt und dann halt das betreffende Image ausgebe. Tja, in der Theorie halt. Kann mir irgendwer sagen, wie das in der Praxis auszusehen hat? Hier die Schleife, die einliest: foreach(FileInfo fi in rgFiles){
labplh.Text += "<tr bgcolor=\"#f4f4f4\" onMouseOver=\"this.style.backgroundColor='#ffffff'\" onMouseOut=\"this.style.backgroundColor='#f4f4f4'\"><td width='20'>";
labplh.Text += "<a href='http://" + Request.ServerVariables["HTTP_HOST"] + Session["curDir"] + "/" + fi.Name + "'><img src='[b]graphics/document_public.gif[/b]' border='0' alt='PREVIEW'></a></td>";
labplh.Text += "<td>" + fi.Name + "</td>";
labplh.Text += "<td align=\"middle\">" + fi.LastAccessTime + "</td>";
labplh.Text += "<td align='right'>" + (fi.Length/1024 + 1) + " KB</td>";
labplh.Text += "</tr>";
}
tia edit: Ich habe gerade festgestellt, dass es sich bei der Datei, die ich bearbeite, um ein aspx File handelt. Ist vielleicht nicht so unwichtig.
Bearbeitet von grOOvekill@ am 16.07.2004, 14:02
|
rettich
Legendwaffle, waffle!
|
einfache möglichkeit: du machst halt auf das fi.Name ein right(string,3) - dann hast eine dreistellige extension hinten, die du per case in ein passendes bild umwandelst (case "zip" -> "zip.gif", usw) etwas genauere möglichkeit: du suchst den letzten vorkommenden punkt in fi.Name, alles rechts davon ist die endung. dann wieder ein case. (letzten vorkommenden punkt suchen mit InStr()) ganz sauber: du schaust in den file-header und liest dort heraus, was es eigentlich für ein file ist (dann kriegst zB für ein zip file mit endung .gif auch wirklcih das zip-icon). code dazu gibts im netz, ich werd mal suchen, vielleicht find ich auf die schnelle was. add: und für die ganz faulen gibts hier einen fix fertigen sample code zum runterladen: http://www.buygold.net/v02n10/v02n10.htmleinfach die GetExtensionFromFileName(sFileName, sName) rauskopieren und fertich.
Bearbeitet von rettich am 16.07.2004, 12:05
|
grOOvekill@
LegendVienna Badass
|
Ächz! Also, für jemanden, der weder VB kann, noch ASP beherrscht ist die Syntax echt ein Hammer! Hab mich jetzt damit gespielt, kriege aber eine Fehlermeldung nach der anderen. Ich hab mir einfach die eine Funktion GetExtensionFromFileName gekrallt und versucht in das aspx File einzubetten, aber irgendwie komme ich nicht über die Fehlermeldungen hinaus.
|
rettich
Legendwaffle, waffle!
|
"aspx-file"? dann brauchst du ASP.NET code, nicht ASP code. ok, nicht wirklich viel unterschied, aber 1:1 reinpasten geht da nicht. probiers mal damit: Dim strExten as String
Dim iPos As Integer = InStrRev(strFile, ".")
Try
strExten = Mid(strFile, iPos)
Catch
MsgBox("Filename must include an extension.")
strExten = ""
'Exit!
End Try
|
grOOvekill@
LegendVienna Badass
|
Okay, ich hab mich für den leichten Weg entschieden. Ich hab eine Methode EndsWith gefunden, mit der ich einfach abfrage, womit die Datei endet. In einer if/else Schleife knall' ich dann halt jeweils die betreffende Grafik für den jeweiligen Datentyp rein. Ist vermutlich nicht so ganz die feine eEnglische, aber es funktioniert wenigstens. ![:)](/images/smilies/smile.gif) Andere Frage: Es gibt doch sicher auch so eine TOUPPER Funktion oder Methode. Irgendwie hab ich da nix gefunden. Jemand 'ne Ahnung?
|
rettich
Legendwaffle, waffle!
|
|
grOOvekill@
LegendVienna Badass
|
Alles klar, danke!
|