Avatar billede iversenhome Nybegynder
08. september 2005 - 19:39 Der er 8 kommentarer

Filer med special karakterer vises ikke. GetFolder / Server.mapPa

Jeg vil på en Internetside gerne vise samtlige filer fra en folder og kunne downloade dem ved hjælp af link.
Problemet med mit nuværende script er, at jeg ikke kan åbne/downloade filer der indeholder special-karakterer som æ/ø/å i filnavnet..
Jeg har forsøgt mig lidt frem og tilbage med diverse codepage indstillinger - men det er ikke lykkedes for mig.. Visning af filnavne fungerer fint for alle filnavne uanset special-karakterer eller ikke!

Dette er mit script:

<% Language=VBScript %>
<%Session.CodePage = 65001%>
<!--
<% Session.CodePage = 1252%>
-->
<head>

<meta name="language" content="dan" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<!--
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="language" content="dan" />
-->

</head>
<%
Set MyDirectory=Server.CreateObject("Scripting.FileSystemObject")
Set MyFiles=MyDirectory.GetFolder(Server.MapPath("./Indhold/Dagsorden_Referater"))
For each filefound in MyFiles.files
%>
<!--<a href"<%=filefound.Name%>"><% =filefound.Name %></a>-->
<% Response.Write "<a href="""&"./Indhold/Dagsorden_Referater/" & filefound.Name & """>" & filefound.Name & "</a><br>" %>
<%
Next
%><p align="left">&nbsp;</p>
Avatar billede cpufan Juniormester
08. september 2005 - 20:59 #1
hvad hvis du bare gør sådan?
<% Response.Write "<a href="""&"./Indhold/Dagsorden_Referater/" & filefound & """>" & filefound.Name & "</a><br>" %>
Avatar billede iversenhome Nybegynder
08. september 2005 - 21:57 #2
Nej det hjælper ikke.. Faktisk gør det bare situationen værre :-(

Jeg benytter en ISP (cliche.dk) - og hvis jeg fjerner ".Name" vil jeg få hele stien, hvilket der jo ikke er adgang til at vise på Internettet - så jeg er ret overbevist om at syntaksen for så vidt er korrekt - men at løsningen bør findes i et eller andet med noget sprog / special karakterer.. Derfor har jeg prøvet forskellige codepages - men får det altså ikke til at fungere.
Avatar billede busschou Praktikant
09. september 2005 - 07:46 #3
Hmm øhh bøhh :o)
Jeg tror du skal overveje ikke at godkende/bruge filnavne med æøå (det er i forvejen generelt en dårlig ide hvis man skal arbejde cross platform)
Jeg har selv cliche og har lige forsøgt med en enkelt fil med det resultat at jeg får en status 404 File Not Found tilbage hvilket jo betyder at den ikke kan finde filen
Hvilken codepage du giver dit html dokument siger jo kun noget om hvordan dit html dokument skal vises
I FF laver den selv url encode således at "www.test.dk/testæøåfil.txt" bliver til "www.test.dk/test%E6%F8%E5fil.txt" i IE laver den ikke dette. Eller dvs det er det man kan se i browserens adresse linje i al fald :o)
Uanset hvilken jeg indtaster så får jeg 404
Eftersom det der står i adresselinjen er det som browseren prøver at hente fra serveren.
Så vil jeg mene at problematikken opstår fordi serveren ikke er glad for æøå
Avatar billede busschou Praktikant
09. september 2005 - 08:02 #4
hmm forsøgte lige at sætte en sniffer på for at se hvad IE gør ved url´en, hos mig laver den en GET på /test%C3%A6%C3%B8%C3%A5fil.txt hvilket jo slet ikke giver mening, det er jo en helt gal oversættelse, gad vist hvordan den kommer frem til det :o/
--
anyway så gælder dine meta tags jo kun i html koden i din asp fil. Så snart du klikker på et link så gælder de jo ikke mere. Hvordan det gælder med session.codepage er jeg ikke 100% sikker på. Men i min verden så skal et link virke fuldstændig som om man tastede det manuelt i adresselinjen uden at have været inde på siden først, altså uden codepagen har været sat. Og da det ikke virker med æøå så må det være fordi det konflikter med serveren
Avatar billede iversenhome Nybegynder
10. september 2005 - 13:57 #5
Det er i dette tilfælde ikke muligt at undlade æ/ø/å m.m. Det er det som der skal findes en løsning på..

Et dokument der virker viser følgende link i adressebaren
/Dagsorden_Referater/Referat%202004.04.15%20-%20Aktiv%20Fredag.doc

Et dokument med specialkarakterne som ikke virker viser følgende..
/Dagsorden_Referater/Referat%202004.02.16%20-%20Bestyrelsesmøde.doc

Altså samme syntaks - og ingen problemer med at æ/ø/å ikke vises..

Jeg prøver at høre cliche om problemet evt. skyldes serverens opsætning....

Andre gode input modtages dog stadig gerne :-)
Avatar billede olebole Juniormester
10. september 2005 - 14:05 #6
<ole>

Du kan sagtens undgå, der kommer filer på serveren, der ikke indholder specialtegn - og derfor kan du også sørge for, der ikke skal downloades den slags filer  :)
Dels kan du bare sørge for ikke selv at uploade dem ... dels kan du afvise evt. bruger-upload af dem.
Er det filnavne, der dannes dynamisk på baggrund af andre data (der kan indholde specialtegn), bør specialtegn udskiftes - og applikationen indrettes derefter  :)

/mvh
</bole>
Avatar billede olebole Juniormester
10. september 2005 - 14:07 #7
PS: Løser du dit nuværende problem, som du er inde på her, introducerer du blot flere ... du træder termometret i stykker, men patienten har stadig feber  ;o)
Avatar billede iversenhome Nybegynder
10. september 2005 - 14:42 #8
Jeg er klar over at jeg kan undgå problemstillingen på mange måder...  Men jeg vil hellere have problemstillingen løst, og kan ikke forstå, hvis det ikke er muligt.. Jeg forstår udmærket at det i de tidlige Internet dage var et problem med f.eks. danske special-karakterer.. Men nu om dage bør det kunne løses...

Så jeg er interesseret i at løse problemstillingen - IKKE undgå problemet :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester