Avatar billede johan.o Nybegynder
03. marts 2005 - 11:40 Der er 11 kommentarer og
1 løsning

Form - Send lokal path, hvordan ?

Ved brug af <input type=file> kan brugeren 'browse' lokalt for at finde den fil som skal uploades. Jeg er i dette tilfælde ligeglad med filen, men skal 'kun' bruge filens lokale path. F.eks.: "C:/Pic/pic.jpg"

Formen sendes til et php script. Kan jeg få lokal path sendt med filen ?

Faktisk er jeg slet ikke interesseret i at få filen uploaded, jeg er kun ude efter den lokale path til filen. Denne kunne jeg få gennem et text input felt men jeg vil gerne hjælpe brugeren ved at stille browser funktionaliteten til rådighed, både for at gøre det nemmere men også for at sikre at 'path' er korrekt. Nogen forslag til hvordan dette kan gøres ?
Avatar billede olebole Juniormester
03. marts 2005 - 11:46 #1
<ole>

<form ..... onsubmit="this.myFile.value=''">
    <input type="hidden" name="hest">
    <input type="file" name="myFile" onchange="this.form.hest.value=this.value">
    <button type="submit">Send</button>
</form>

/mvh
</bole>
Avatar billede olebole Juniormester
03. marts 2005 - 11:47 #2
- så uppes filen ikke, men stien til filen ligger i variablen 'hest'
Avatar billede johan.o Nybegynder
03. marts 2005 - 12:04 #3
Hold k... det var hurtigt, og det var præcis det jeg var ude efter, mange tak.

Så vil jeg jo gerne give dig point .... men hvor f.... skal jeg trykke :-) ?

(Er her ikke så tit)
Avatar billede olebole Juniormester
03. marts 2005 - 12:17 #4
Sådan, så har jeg lagt et svar, der kan accepteres  ;o)
Avatar billede johan.o Nybegynder
03. marts 2005 - 12:21 #5
Tak.
Avatar billede olebole Juniormester
03. marts 2005 - 12:24 #6
Selvtak  :)
Avatar billede johan.o Nybegynder
03. marts 2005 - 23:39 #7
Øhm, så fik jeg 'leget' lidt med forslaget og det viser sig at object.value er read only og derfor ikke kan sættes til "". Det betyder jo at formen sender billedet til serveren hvis altså ENCTYPE er sat rigtigt. Jeg har løst problemet ved istedet at bruge flg. funktion i.fb.m. submit.

function onSub()
{
document.myForm.myFile.disabled=true;
}

Så sendes kun 'hidden' feltet. Men stadig tak for hjælpen, jeg blev jo peget i den helt rigtige retning. :-)
Avatar billede olebole Juniormester
03. marts 2005 - 23:48 #8
Nej, den sender ikke billedet til serveren. Så snart, du prøver at sætte noget somhelst på en type="file", får du ikke lov at sende filen. Du kan gøre næsten, hvad somhelst ... bare du scripter på elementet. Hvis du tester, vil du se, du ikke får filen uploaded  ;o)
Avatar billede johan.o Nybegynder
04. marts 2005 - 00:22 #9
Hmmm, her er en rå version af min (din) :-) form :

<form method="post" action="validate.php" name="myForm" enctype="multipart/form-data" onsubmit="myForm.pic1.value=''">

<input type="file" name="pic1" onchange="myForm.path1.value=this.value">
<input type="hidden" name="path1">

<input type="submit" value="Send">
</form>

Når jeg så checker $_FILES['pic1']['size'] i validate.php så siger den f.eks. 110244 bytes.....så er billedet vel uploaded...eller ?
Avatar billede olebole Juniormester
04. marts 2005 - 00:34 #10
Prøv move_uploaded_file()  ;o)
Avatar billede olebole Juniormester
04. marts 2005 - 00:35 #11
Du får alle fil-info - men ikke en selve byte-strømmen
Avatar billede johan.o Nybegynder
04. marts 2005 - 00:44 #12
Hm, okay, jeg har ikke prøvet men jeg stoler på dig, det var blot en postgang lettere for mig at konstatere at disabled=true virker, da det medfører ingen overført data fra 'pic1' overhovedet.

Hvis der f.eks. ikke er andre <input type=file> i formen, kan man jo også blot udelade ENCTYPE, men er det særlig 'god form' ?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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