|
| Mellemrum i filnavne Fra : Jørgen Müller |
Dato : 16-08-03 19:09 |
|
Hej
Jeg gemmer navnet på billedfiler i databasen, og har nu et par dage forsøgt
at få det til at virke, når der i filnavnet indgår mellemrum?
Eks.
Billedet - Så kan det være nok.jpg - ligger i databasen med det rigtige navn
og gemt uden Server indblanding.
Når jeg viser det med Server.URLPathEncode bliver billedet vist, men
beskrivelsen er S%E5%20kan%20det%20v%E6re%20nok.JPG og det kan ingen læse.
Hvis jeg bruger Server.URLEncode eller Server.HTMLEncode bliver der kun vist
hen til første mellemrum også hvis jeg bruger Server.HTMLEncode når jeg
gemmer billedet i databasen.
Hvad gør jeg galt?
--
Med Venlig Hilsen
Jørgen Müller
| |
Torben Brandt (16-08-2003)
| Kommentar Fra : Torben Brandt |
Dato : 16-08-03 19:30 |
|
Jørgen Müller wrote:
> Jeg gemmer navnet på billedfiler i databasen, og har nu et par dage forsøgt
> at få det til at virke, når der i filnavnet indgår mellemrum?
>
> Eks.
> Billedet - Så kan det være nok.jpg - ligger i databasen med det rigtige navn
> og gemt uden Server indblanding.
> Når jeg viser det med Server.URLPathEncode bliver billedet vist, men
> beskrivelsen er S%E5%20kan%20det%20v%E6re%20nok.JPG og det kan ingen læse.
>
> Hvis jeg bruger Server.URLEncode eller Server.HTMLEncode bliver der kun vist
> hen til første mellemrum også hvis jeg bruger Server.HTMLEncode når jeg
> gemmer billedet i databasen.
Lad mig forstå dig korrekt:
Du har nogle billedfiler på din server. Du har gemt stien (og kun stien)
til billedet i en database. Du vil gerne - ud fra databasen - vise
billederne.
Kan du ikke vise lidt kode omkring der hvor du trækker filnavne ud fra
databasen og skriver dem til brugeren?
mvh Torben
| |
Jørgen Müller (16-08-2003)
| Kommentar Fra : Jørgen Müller |
Dato : 16-08-03 20:41 |
|
Torben Brandt skrev:
>Kan du ikke vise lidt kode omkring der hvor du trækker filnavne ud fra
>databasen og skriver dem til brugeren?
Jeg åbner database forbindelse med
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open strSQL, dbcon
og koden der viser billedet:
If Not rs("Billede") = "" Then
Response.Write "<B>Billede:</B><BR>"
Response.Write "<IMG SRC=" & Server.URLPathEncode(rs("Billede")) & ">"
End If
rs("Billede") indeholder så f.eks.
images/Så kan det være nok.JPG
Her bliver billedet vist, men hvis man vil lave en ALT atribut er der ingen
der kan læse teksten?
Hvis jeg prøver med URLEncode bliver der kun vist hen til første mellemrum:
images/Så
--
Med Venlig Hilsen
Jørgen Müller
| |
Torben Brandt (16-08-2003)
| Kommentar Fra : Torben Brandt |
Dato : 16-08-03 21:15 |
|
Jørgen Müller wrote:
> Torben Brandt skrev:
>
>>Kan du ikke vise lidt kode omkring der hvor du trækker filnavne ud fra
>>databasen og skriver dem til brugeren?
>
> og koden der viser billedet:
> If Not rs("Billede") = "" Then
> Response.Write "<B>Billede:</B><BR>"
> Response.Write "<IMG SRC=" & Server.URLPathEncode(rs("Billede")) & ">"
> End If
>
> rs("Billede") indeholder så f.eks.
> images/Så kan det være nok.JPG
Fungerer det ikke hvis du skriver:
Response.Write "<IMG SRC=""" & rs("Billede") & """>"
Normalt er det en uskik at have mellemrum i filnavne, men plejer
browseren ikke at kunne formatere disse mellemrum korrekt uden at man
skal tænke på det?
> Her bliver billedet vist, men hvis man vil lave en ALT atribut er der ingen
> der kan læse teksten?
Jeg forstår ikke hvad du mener. Hvad skal der stå i alt-attributten og
hvorfor kan man ikke læse den?
mvh Torben
| |
Jørgen Müller (16-08-2003)
| Kommentar Fra : Jørgen Müller |
Dato : 16-08-03 20:57 |
|
Hej
Filnavnet er:
59511_Så er der dessert.jpg
59511%5FS%E5+er+der+dessert%2Ejpg
Her har jeg undladt images/ og kun gemt filnavnet for derefter at prøve at
vise det med Server.URLEncode.
Billedet bliver ikke vist.
59511_S%E5%20er%20der%20dessert.jpg
Her forsøger jeg med Server.URLPathEncode og billedet bliver vist.
--
Med Venlig Hilsen
Jørgen Müller
| |
Jørgen Müller (16-08-2003)
| Kommentar Fra : Jørgen Müller |
Dato : 16-08-03 22:31 |
|
Torben Brandt skrev:
>Fungerer det ikke hvis du skriver:
> Response.Write "<IMG SRC=""" & rs("Billede") & """>"
Hvis jeg gør det bliver filnavnet kortet af ved det første mellemrum:
59511_Så
og billedet bliver ikke vist.
>Normalt er det en uskik at have mellemrum i filnavne, men plejer
>browseren ikke at kunne formatere disse mellemrum korrekt uden at man
>skal tænke på det?
Nej, derfor URLEncode og HTMLEncode.
Har ikke haft lange filnavne før, men det er en måde at lave en beskrivelse
til billedet på.
Modtager mange billeder fra hele landet, og når man ikke har deltaget selv
er det svært at lægge det på nettet med en sigende beskrivelse, derfor lange
forklarende filnavne.
Brugerne skal hen ad vejen selv kunne lægge billederne op i forskellige
mapper, og her bliver der ikke mulighed for en beskrivelse (tror jeg nok?)
>Jeg forstår ikke hvad du mener. Hvad skal der stå i alt-attributten og
>hvorfor kan man ikke læse den?
Meningen med lange filnavne er at kunne tildele ALT atributten filnavnet og
hermed få en beskrivelse af billedet, og så længe filnavnet ikke vises
korrekt, er det svært at læse.
--
Med Venlig Hilsen
Jørgen Müller
| |
Torben Brandt (16-08-2003)
| Kommentar Fra : Torben Brandt |
Dato : 16-08-03 23:13 |
|
Jørgen Müller wrote:
> Torben Brandt skrev:
>
>>Fungerer det ikke hvis du skriver:
>>Response.Write "<IMG SRC=""" & rs("Billede") & """>"
>
> Hvis jeg gør det bliver filnavnet kortet af ved det første mellemrum:
> 59511_Så
> og billedet bliver ikke vist.
Jeg har lige prøvet (IE6, NN7, Mozilla 1.0) at indtaste en url med
mellemrum (f.eks. "127.0.0.1/ind ex.asp"), så finder den filen. Det
gælder også hvis jeg skriver <img src="127.0.0.1/pic ture.gif">.
Browseren indsætter bare %20 i stedet for mellemrummet. Det kan min
server (win98/PWS) godt forstå. Kan det være din server, der ikke
forstår %20 i filnavne?
>>Normalt er det en uskik at have mellemrum i filnavne, men plejer
>>browseren ikke at kunne formatere disse mellemrum korrekt uden at man
>>skal tænke på det?
>
> Nej, derfor URLEncode og HTMLEncode.
Hos mig gør den - se herover.
HTMLEncode har så vidt jeg kan ikke noget at gøre med om src-attributten
fungerer. Måske skal den bruges i alt-attributten.
> Har ikke haft lange filnavne før, men det er en måde at lave en beskrivelse
> til billedet på.
> Modtager mange billeder fra hele landet, og når man ikke har deltaget selv
> er det svært at lægge det på nettet med en sigende beskrivelse, derfor lange
> forklarende filnavne.
> Brugerne skal hen ad vejen selv kunne lægge billederne op i forskellige
> mapper, og her bliver der ikke mulighed for en beskrivelse (tror jeg nok?)
Hvad er begrundelsen for at du ikke lægger en beskrivelse i den database
du allerede har?
Evt. kunne du ved upload erstatte alle mellemrum med underscore, så kan
man stadig læse beskrivelsen i filnavnet og du slipper for alle problemerne.
>>Jeg forstår ikke hvad du mener. Hvad skal der stå i alt-attributten og
>>hvorfor kan man ikke læse den?
>
> Meningen med lange filnavne er at kunne tildele ALT atributten filnavnet og
> hermed få en beskrivelse af billedet, og så længe filnavnet ikke vises
> korrekt, er det svært at læse.
Hvis du skriver alt="<%= rs("billede") %>" så kan brugeren vel læse det..?
mvh Torben
| |
Jørgen Müller (16-08-2003)
| Kommentar Fra : Jørgen Müller |
Dato : 16-08-03 23:36 |
|
Torben Brandt skrev:
>Hvis du skriver alt="<%= rs("billede") %>" så kan brugeren vel læse
det..?
Nej for rs("billede") indeholder så kun 59911_Så - altså hen til det første
mellemrum? aner ikke hvorfor?
>Hvad er begrundelsen for at du ikke lægger en beskrivelse i den database
>du allerede har?
>Evt. kunne du ved upload erstatte alle mellemrum med underscore, så kan
>man stadig læse beskrivelsen i filnavnet og du slipper for alle
problemerne.
Beskrivelse er for så vidt ligegyldig i det eksempel jeg nu sidder og roder
med, men på sigt skal jeg lade nogle brugere uploade billeder, og her kniber
det lidt med deres "tid".
Senere vil jeg vise billeder via Persits AspUpload og dens muligheder for
browsing, og alle billeder er da også lagt op med den control.
I den nuværende form kan jeg bare erstatte filnavnet med et nyt, det er
ligemeget, men det lærer jeg ikke så meget af.
Bruger Win XP og SQL server på min egen maskine og Win2003 server og SQL
server på udbyderens maskine. Har desuden en Win2000 server uden database
til test og alle tre maskiner giver samme resultat.
--
Med Venlig Hilsen
Jørgen Müller
| |
Torben Brandt (17-08-2003)
| Kommentar Fra : Torben Brandt |
Dato : 17-08-03 00:32 |
|
Jørgen Müller wrote:
> Torben Brandt skrev:
>
>>Hvis du skriver alt="<%= rs("billede") %>" så kan brugeren vel læse det..?
>Nej for rs("billede") indeholder så kun 59911_Så - altså hen til det første
>mellemrum? aner ikke hvorfor?
Okay, det er overraskende. Er du sikker på det - undskyld jeg tvivler :)
Du siger at der står
59511_Så er der dessert.jpg
i databasen, men rs("billede") indeholder kun
59911_Så
Så kan
Server.URLPathEncode(rs("Billede"))
da ikke give
59511_S%E5%20er%20der%20dessert.jpg
Du husker at sætte gåseøjne rundt om værdierne for attributterne ikk?
Har du prøvet at skrive nedenstående på en .html-side og så om den viser
billedet uden indblanden fra databasen? [linien er knækket]
<img src="/images/59511_Så er der dessert.jpg"
alt="59511_Så er der dessert.jpg">
mvh Torben
| |
Jørgen Müller (17-08-2003)
| Kommentar Fra : Jørgen Müller |
Dato : 17-08-03 01:08 |
|
Hej Torben
>Du siger at der står
> 59511_Så er der dessert.jpg
>i databasen, men rs("billede") indeholder kun
> 59911_Så
>Så kan
> Server.URLPathEncode(rs("Billede"))
>da ikke give
> 59511_S%E5%20er%20der%20dessert.jpg
Ikke destro mindre er det de resultater jeg får?
Er helt sikker på at databasefeltet indeholder 59511_Så er der dessert.jpg
det har jeg kontrolleret.
Hvad jeg ikke kan forstå er hvorfor rs("Billede") kun vil vise hen til det
første mellemrum, når nu jeg er sikker på, at hele filnavnet står i
databasen?
Eneste måde jeg kan få det vist på er ved at bruge Server.URLPathEncode,
ellers vil den slet ikke vise billedet.
Har også lavet forsøg med Replace, hådt mellemrum vil SQL serveren
ikke acceptere, men jeg kan så erstatte mellemrummene med +, her bliver
billederne vist fint.
Når jeg så replacer igen i ALT atributten bliver filnavnet igen kun vist hen
til det første mellemrum?????
Vil prøve lidt mere i morgen, for nu er der gået kuk i siden.
Tak for hjælpen så langt, for det har givet mig noget at tænke over!
--
Med Venlig Hilsen
Jørgen Müller
| |
Torben Brandt (17-08-2003)
| Kommentar Fra : Torben Brandt |
Dato : 17-08-03 01:22 |
|
Jørgen Müller wrote:
> Torben Brandt wrote:
>
> Har også lavet forsøg med Replace, hådt mellemrum vil SQL serveren
> ikke acceptere, men jeg kan så erstatte mellemrummene med +, her bliver
> billederne vist fint.
> Når jeg så replacer igen i ALT atributten bliver filnavnet igen kun vist hen
> til det første mellemrum?????
Ud fra det tror jeg at du skriver
<img src=<%= rs("billede") %> alt=<%= rs("billede")>
og ikke
<img src="<%= rs("billede") %>" alt="<%= rs("billede")">
Der er stor forskel, især når der er mellemrum i rs("billede").
Prøv nedenstående, hvis du endnu ikke har gjort det:
>>Du husker at sætte gåseøjne rundt om værdierne for attributterne ikk?
>>Har du prøvet at skrive nedenstående på en .html-side og så om den
>>viser billedet uden indblanden fra databasen? [linien er knækket]
>> <img src="/images/59511_Så er der dessert.jpg"
>> alt="59511_Så er der dessert.jpg">
mvh Torben
| |
Jørgen Müller (17-08-2003)
| Kommentar Fra : Jørgen Müller |
Dato : 17-08-03 07:59 |
|
Torben Brandt skrev:
>Der er stor forskel, især når der er mellemrum i rs("billede").
>Prøv nedenstående, hvis du endnu ikke har gjort det:
Det har du fuldstændig ret i, og der lærte jeg noget igen, for jeg må
erkende at jeg har sjusket lidt med gåseøjne i mine Response.Write
sætninger.
Response.Write "<IMG SRC=""" & rs("Billede") & """alt=""" & rs("Billede") &
""">"
Egenskaber for billede siger:
images/60511_Så%20er%20der%20dessert.jpg
Men når man holder musen hen over billedet bliver teksten vist korrekt.
Mange mange tak til Torben for hans tolmodighed.
PS det hjalp jeg fik sovet lidt.
--
Med Venlig Hilsen
Jørgen Müller
| |
Jens Gyldenkærne Cla~ (17-08-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 17-08-03 23:15 |
|
Jørgen Müller skrev:
> Det har du fuldstændig ret i, og der lærte jeg noget igen, for
> jeg må erkende at jeg har sjusket lidt med gåseøjne i mine
> Response.Write sætninger.
Anførselstegn om parameterværdier er en god ting (tm).
> Response.Write "<IMG SRC=""" & rs("Billede") & """alt=""" &
> rs("Billede") & """>"
Der burde nok være mellemrum før "alt".
Hvis meningen er at filnavnet skal kunne læses som pop op-tekst på
billedet, bør du benytte parameteren title i stedet for alt. Alt-
tekst skal egentlig kun vises hvis et billede _ikke_ vises - fx
fordi filen mangler eller billedvisning er slået fra. Title vises
derimod sammen med et billede.
Internet Explorer viser alt-teksten sammen med billedet, men andre
browsere gør det ikke. Alle almindelige browsere viser til gengæld
title-teksten.
Forslag:
Response.Write "<img src=""" & rs("Billede") & """ title=""" &
rs("Billede") & """ alt=""" & rs("Billede") & """>"
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Jørgen Müller (18-08-2003)
| Kommentar Fra : Jørgen Müller |
Dato : 18-08-03 08:23 |
|
Jens Gyldenkærne Clausen skrev:
>Forslag:
>Response.Write "<img src=""" & rs("Billede") & """ title=""" &
>rs("Billede") & """ alt=""" & rs("Billede") & """>"
er straks blevet udført, tak.
>Hvis meningen er at filnavnet skal kunne læses som pop op-tekst på
>billedet, bør du benytte parameteren title i stedet for alt. Alt-
>tekst skal egentlig kun vises hvis et billede _ikke_ vises - fx
>fordi filen mangler eller billedvisning er slået fra. Title vises
>derimod sammen med et billede.
>Internet Explorer viser alt-teksten sammen med billedet, men andre
>browsere gør det ikke. Alle almindelige browsere viser til gengæld
>title-teksten.
Der lærte jeg igen noget nyt, men det er vel egentlig også hvad et sådan
forum handler om.
Mange tak til Jens og Torben.
Interesserede kan se lidt af det på www.smaabaadsklub.dk vælg fangster i
menuen og her Top 10
--
Med Venlig Hilsen
Jørgen Müller
| |
|
|