|
| File felt Fra : Flemming Jensen |
Dato : 23-10-02 19:34 |
|
Hejsa
Kan det egentlig lade sig gøre, at bruge et textfield samt en button til at
lave et file felt, hvis man gerne vil undgå at bruge det indbygget file
element. Set ud fra at det selvfølgelig skal være muligt at uploade en fil
fra den angivende sti. Ved ikke om man _skal_ bruge file elemtet for at få
lov til at uploade en fil, eller hvordan?
Tak
--
Flemming Jensen
| |
Thygesen (23-10-2002)
| Kommentar Fra : Thygesen |
Dato : 23-10-02 19:34 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> skrev
> Kan det egentlig lade sig gøre, at bruge et textfield samt en button til
at
> lave et file felt, hvis man gerne vil undgå at bruge det indbygget file
> element. Set ud fra at det selvfølgelig skal være muligt at uploade en fil
> fra den angivende sti. Ved ikke om man _skal_ bruge file elemtet for at få
> lov til at uploade en fil, eller hvordan?
Nej det understøtter de forskellige browsere ikke, du er nødt til at bruge
type=file, hvis filer skal sendes til serveren.
Mvh. Christoffer Thygesen
http://CHT.dk
| |
Flemming Jensen (23-10-2002)
| Kommentar Fra : Flemming Jensen |
Dato : 23-10-02 20:13 |
|
Thygesen skrev:
> Nej det understøtter de forskellige browsere ikke, du er nødt til at bruge
> type=file, hvis filer skal sendes til serveren.
Tænkte det nok. Ellers var det også et alt for stort sikkerhedsbrist. Jeg
kunne jo egentlig godt selv regne det ud, for hvis det kunne lade sig gøre
kunne man hente hvad man ville fra brugerens computer.
Så kan jeg ikke validerer file feltet på serversiden. Eller det kan jeg, men
hvis der er en fejl vil jeg gerne have alle felterne udfyldt med de
indtastede data igen, og det kan man jo heller ikke med file.
Så bliver jeg alligevel nødt til at validerer på klientsiden, men jeg vil
ikke have de alert()'s på, hvor et vindue hopper frem og siger der er fejl.
Er det ikke muligt at få tekst som ved response.write på siden i stedet for
de alerts ved fejl?
--
Flemming Jensen
| |
Flemming Jensen (23-10-2002)
| Kommentar Fra : Flemming Jensen |
Dato : 23-10-02 20:14 |
|
Jeg skrev:
> Så bliver jeg alligevel nødt til at validerer på klientsiden, men jeg vil
> ikke have de alert()'s på, hvor et vindue hopper frem og siger der er
fejl.
> Er det ikke muligt at få tekst som ved response.write på siden i stedet
for
> de alerts ved fejl?
Tænker i javascripts baner.
--
Flemming Jensen
| |
Jesper Stocholm (23-10-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 23-10-02 20:31 |
|
Flemming Jensen wrote :
> Jeg skrev:
>
>> Så bliver jeg alligevel nødt til at validerer på klientsiden, men jeg
>> vil ikke have de alert()'s på, hvor et vindue hopper frem og siger
>> der er fejl.
>> Er det ikke muligt at få tekst som ved response.write på siden i
>> stedet for de alerts ved fejl?
>
> Tænker i javascripts baner.
du kan lave et tomt div-element, som du så kan putte tekst i.
Noget i denne retning:
<script type="text/javascript">
function validateData() {
// hvis data er forkerte
document.alertfelt.innerText = 'Der skete en fejl';
}
</script>
<form ... onsubmit="validateData()">
</form>
<div id="alertfelt"></div>
Dette er med store forbehold for at syntaksen er helt korrekt, så check
det lige selv.
Jeg sætter FUT til dk.edb.internet.webdesign.clientside
--
Jesper Stocholm
http://stocholm.dk
Overvejer du at købe bøger ved saxo.dk ? Kig først på
http://www.firmcheck.dk/Info.asp?website=www.saxo.dk
| |
Jakob Andersen (23-10-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 23-10-02 20:35 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> wrote
> Kan det egentlig lade sig gøre, at bruge et textfield samt en button til
at
> lave et file felt, hvis man gerne vil undgå at bruge det indbygget file
> element. Set ud fra at det selvfølgelig skal være muligt at uploade en fil
> fra den angivende sti. Ved ikke om man _skal_ bruge file elemtet for at få
> lov til at uploade en fil, eller hvordan?
Det kan godt lade sig gøre at lave noget fusk så man kan få en <input
type="text"> og en <input type="button"> til at fungere som et file element,
men det vil kun virke i Internet Explorer, det kunne f.eks. se sådan her ud:
<html>
<head>
<script type="text/javascript">
function init(){
var objFilknap = document.getElementById('filknap');
var objFil = document.getElementById('Fil');
objFilknap.onclick = objFil.click;
}
</script>
</head>
<body onload="init();">
<! -- her er vores filboks som er uden for skærmarealet -->
<input type="file" name="Fil" id="Fil"
style="position:absolute;left:-500px;" onchange="filnavn.value =
this.value;" />
<!-- her er vores erstatningselementer -->
<input type="text" name="filnavn" id="filnavn" readonly="readonly" />
<input type="button" name="filknap" id="filknap" value="Gennemse.." />
</body>
</html>
MEN jeg vil ikke anbefale at bruge ovenstående da en "file" boks nu engang
skal se sådan ud fordi brugeren forventer det.
--
Jakob Andersen
| |
Jens Gyldenkærne Cla~ (23-10-2002)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 23-10-02 22:18 |
|
Jakob Andersen skrev:
> Det kan godt lade sig gøre at lave noget fusk så man kan få en
> <input type="text"> og en <input type="button"> til at fungere
> som et file element, men det vil kun virke i Internet
> Explorer, det kunne f.eks. se sådan her ud:
Det virker fint nok - men det giver jo stadig ikke mulighed for at
sætte værdien af filobjektet.
Selv om du kan sætte værdien af den tekstboks der er sammenkædet
med filobjektet kan du ikke få filobjektet til at antage denne
værdi (hvis du kan vil jeg være imponeret).
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.
| |
Jakob Andersen (23-10-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 23-10-02 23:03 |
|
"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote
> Det virker fint nok - men det giver jo stadig ikke mulighed for at
> sætte værdien af filobjektet.
Øhmmm.. I spørgsmålet blev ikke nævnt noget med at det skulle være muligt at
sætte value i file elementet?
Tror du ikke du blander det sammen med tråden fra igår:
<news:gibt9.157490$Qk5.5767557@news010.worldonline.dk>
--
Jakob Andersen
| |
Jakob Andersen (23-10-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 23-10-02 23:10 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote
> Øhmmm.. I spørgsmålet blev ikke nævnt noget med at det skulle være muligt
at
> sætte value i file elementet?
Faktisk siger Document Object Modellen for HTML at value attributten kan
bruges på fileobjektet:
< http://www.w3.org/TR/2002/CR-DOM-Level-2-HTML-20021007/html.html#ID-6043025
>
Og det ser også ud til at ihvertfald Opera har det implementeret dog kun i
DOM'en dvs. det vises ikke i boksen.
--
Jakob Andersen
| |
Jens Gyldenkærne Cla~ (23-10-2002)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 23-10-02 23:13 |
|
Jakob Andersen skrev:
> Øhmmm.. I spørgsmålet blev ikke nævnt noget med at det skulle
> være muligt at sætte value i file elementet?
> Tror du ikke du blander det sammen med tråden fra igår:
Måske - men det er jo også samme spørger. Jeg gik ud fra at det nye
spørgsmål var et forsøg på at omgå problemet med at man ikke kan
sætte value på et filobjekt ved i stedet at benytte et tekstobjekt.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.
| |
Flemming Jensen (24-10-2002)
| Kommentar Fra : Flemming Jensen |
Dato : 24-10-02 11:10 |
|
Jakob Andersen skrev:
> Det kan godt lade sig gøre at lave noget fusk så man kan få en <input
> type="text"> og en <input type="button"> til at fungere som et file
element,
> men det vil kun virke i Internet Explorer, det kunne f.eks. se sådan her
ud:
[SNIP noget kode]
Jeg har ikke mulighed for at teste den endnu, da jeg ikke har fundet ud af
hvilken upload komponent jeg skal bruge endnu. Jeg ville bare høre om det
var muligt, for hvis ikke er jeg nødt til at lave alt validering af felter
osv. om til at køre på klientsiden i stedet for, som jeg har det nu,
serversiden.
Er der ikke en eller anden ting ved file elementet som gør at man ikke
skulle kunne "fuske" det. Hvis ikke kan man vil hente alle de filer man vil
fra brugerne, ved nemlig at sætte en value i tekst boksen, og bare håbe på
brugeren trykker på den rigtige knap.
> MEN jeg vil ikke anbefale at bruge ovenstående da en "file" boks nu engang
> skal se sådan ud fordi brugeren forventer det.
Jeg vil også helst bruge en normal file boks, men jeg har som sagt al
validering på serversiden, for jeg er ikke god til javascript endnu, men er
begyndt på det, så det er bare et spørgsmål om tid før jeg laver det om.
Tak
--
Flemming Jensen
| |
Jakob Andersen (24-10-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 24-10-02 15:55 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> wrote
> Jeg vil også helst bruge en normal file boks, men jeg har som sagt al
> validering på serversiden, for jeg er ikke god til javascript endnu, men
er
> begyndt på det, så det er bare et spørgsmål om tid før jeg laver det om.
Jeg laver som regel altid mine formularer der indeholder filupload i 2 step:
1. Ydfyld felter og valider både clientside og serverside
2. Spørg brugeren om han/hun vil vedhæfte et billede.
--
Jakob Andersen
| |
Flemming Jensen (24-10-2002)
| Kommentar Fra : Flemming Jensen |
Dato : 24-10-02 18:54 |
|
Jakob Andersen skrev:
> Jeg laver som regel altid mine formularer der indeholder filupload i 2
step:
>
> 1. Ydfyld felter og valider både clientside og serverside
> 2. Spørg brugeren om han/hun vil vedhæfte et billede.
Skal det forståes som at du efter valideringen og indsættelsen i databasen
sender brugeren videre til en anden side hvor brugeren kan indsætte billede?
--
Flemming Jensen
| |
Jakob Andersen (24-10-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 24-10-02 20:43 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> wrote
> Skal det forståes som at du efter valideringen og indsættelsen i databasen
> sender brugeren videre til en anden side hvor brugeren kan indsætte
billede?
Ja. Dette er en fordel da det oftest tager lidt længere tid at uploade
billedet og derfor skal brugeren flere gange belemres med uploadtiden hvis
der er fejl i valideringen på serverside.
--
Jakob Andersen
| |
Flemming Jensen (24-10-2002)
| Kommentar Fra : Flemming Jensen |
Dato : 24-10-02 19:30 |
|
Jeg skrev:
> Er der ikke en eller anden ting ved file elementet som gør at man ikke
> skulle kunne "fuske" det. Hvis ikke kan man vil hente alle de filer man
vil
> fra brugerne, ved nemlig at sætte en value i tekst boksen, og bare håbe på
> brugeren trykker på den rigtige knap.
Er der ingen der vil svare på dette?
--
Flemming Jensen
| |
Jakob Andersen (24-10-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 24-10-02 20:51 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> wrote
> > Er der ikke en eller anden ting ved file elementet som gør at man ikke
> > skulle kunne "fuske" det. Hvis ikke kan man vil hente alle de filer man
vil
> > fra brugerne, ved nemlig at sætte en value i tekst boksen, og bare håbe
på
> > brugeren trykker på den rigtige knap.
>
> Er der ingen der vil svare på dette?
Nej det kan man ikke, det ville jo have nogle sikkerhedsproblemer, betragt
f.eks. nedenstående eksempel:
<form>
<input type="file" value="C:\Windows\Windows%20Update.log"
style="position:absolute;left:-500px;" />
<input type="submit" value="Lokkende tekst" />
</form>
og vupti, nu ved jeg (måske) hvilke opdateringer brugeren installeret via
Windows Update, og hvis jeg så lige loggede hans IP nummer er der guf for
hackere.
--
Jakob Andersen
| |
Jesper Stocholm (24-10-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 24-10-02 21:37 |
|
Jakob Andersen wrote :
> <form>
> <input type="file" value="C:\Windows\Windows%20Update.log"
> style="position:absolute;left:-500px;" />
> <input type="submit" value="Lokkende tekst" />
> </form>
>
> og vupti, nu ved jeg (måske) hvilke opdateringer brugeren installeret
> via Windows Update, og hvis jeg så lige loggede hans IP nummer er der
> guf for hackere.
og man kunne endda forbedre "bruger-u-venligheden med følgende kode
<body onload="document.forms[0].submit()">
.... samtidig med, at inputfeltet naturligvis blev gemt for brugeren.
--
Jesper Stocholm
http://stocholm.dk
Overvejer du at købe bøger ved saxo.dk ? Kig først på
http://www.firmcheck.dk/Info.asp?website=www.saxo.dk
| |
Flemming Jensen (25-10-2002)
| Kommentar Fra : Flemming Jensen |
Dato : 25-10-02 04:12 |
|
Jakob Andersen skrev:
> Nej det kan man ikke, det ville jo have nogle sikkerhedsproblemer, betragt
> f.eks. nedenstående eksempel:
>
>
> <form>
> <input type="file" value="C:\Windows\Windows%20Update.log"
> style="position:absolute;left:-500px;" />
> <input type="submit" value="Lokkende tekst" />
> </form>
Nu bruger du jo også "file" elementet. Jeg ved jo godt at man ikke kan sætte
value med "file" elementet, men jeg tænke på hvis man brugte den anden måde
og fuskede sig til den file boks, ved en textboks og en knap.
--
Flemming Jensen
| |
Jakob Andersen (25-10-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 25-10-02 07:08 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> wrote
> Nu bruger du jo også "file" elementet. Jeg ved jo godt at man ikke kan
sætte
> value med "file" elementet, men jeg tænke på hvis man brugte den anden
måde
> og fuskede sig til den file boks, ved en textboks og en knap.
Det der foregår i det andet eksempel er blot at jeg skjuler file elementet
og får en anden knap til at "simulere et click på den". Jeg sætter på intet
tidspunkt værdien af file elementet.
--
Jakob Andersen
| |
Flemming Jensen (25-10-2002)
| Kommentar Fra : Flemming Jensen |
Dato : 25-10-02 08:57 |
|
Jakob Andersen skrev:
> Det der foregår i det andet eksempel er blot at jeg skjuler file elementet
> og får en anden knap til at "simulere et click på den". Jeg sætter på
intet
> tidspunkt værdien af file elementet.
Ja, der var jeg for hurtig. Men jeg gør det som du nævnte. Jeg bygger det op
i 2 steps, da det helt sikkert som du sagde vil gå hurtigere for brugeren
ved eventuelle valideringsfejl. Tak.
--
Flemming Jensen
| |
|
|