Gå til innhold

Trenger hjelp til et lite "file-upload"-script


Anbefalte innlegg

Hei, har et form på ei side for å laste opp filer til en server. Denne formen poster data til upload.php, som igjen utfører kommandoen:

 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
" has been uploaded to ".$target_path;
}  else {
feilmelding
}

 

Koden fungerer igrunnen utmerket, men problemet er at brukeren ikke får noen indikasjon på om fila blir lastet opp eller ikke, upload.php skriver jo ikke noe ut før skriptet (og opplastingen) er utført. Kunne ha tenkt med å i det minste gi beskjed om at ting er på gang (animert gif el).

 

Har forstått det slik at "move_upload_file" kun godtar fila hvis den er sendt via POST.

 

Noen som har tips?

Lenke til kommentar
Videoannonse
Annonse

Dette kan enkelt løses med et javascript. Ved onsubmit i form kan du f.eks. sette inn en gif-animasjon, som vises helt til neste side lastes. Merk at dette ikke gir noen reell form for visuell feedback for progress, da opplastningen like godt kan ha hengt seg opp for alt brukeren vet.

Lenke til kommentar

Hei, takk for hjelpa. Dette vil fungere bra det.

 

Problemet mitt er null kunnskap i Javascript. Hvordan i all verden får jeg kommandoen "onSubmit" til å printe et bilde?

 

<form enctype="multipart/form-data" action="uploader.php" method="POST" onsubmit="HER MÅ DET STÅ NOE FOR Å VISE BILDET">
Upload file: <input name="uploadedfile" type="file" size=100/>
<input type="submit" value="Upload File" />

 

Takk så langt.

Lenke til kommentar

http://www.reconn.us/content/view/37/47/

 

Tutorial :)

 

EDIT

eller script ;)

 

<script type="text/javascript">

function loadImage(){

var LI=document.getElementById("loadimage");
var imgsrc = "<img src='image/load.gif' alt=''>";
document.write(imgsrc);
}
</script>
<form enctype="multipart/form-data" action="uploader.php" method="POST" onsubmit="java script:loadImage();">
Upload file: <input name="uploadedfile" type="file" size=100/>
<input type="submit" value="Upload File" />
<div id="loadimage"></div>

 

EDIT2: Bare for og ha det klart, jeg er ikke spessielt god på javascript eller ajax :p - jeg fant også ut at det scriptet jeg lagde ikke ble sendt videre til uploader.php - da ligger dette litt utenfor min liga, så får noen som kan javascript finne på noe! :)

Endret av Famen
Lenke til kommentar

Det som kalles fra onsubmit() må - så vidt jeg husker - returnere true. Grunnen til dette er at onsubmit() egentlig brukes til formvalidation og man skal derfor ha mulighet til å avbryte.

 

function loadImage () {
var LI=document.getElementById("loadimage");
var imgsrc = "<img src='image/load.gif' alt=''>";
document.write(imgsrc);
return true;
}

Lenke til kommentar

Javist ser det ut til at du har rett i dette, men det er fortsatt noe muffins her.

 

Denne fungerer ikke (når return true står til slutt). Den står bare å viser bildet uten å gå videre.

function loadImage () {
var LI=document.getElementById("loadimage");
var imgsrc = "<img src='image/load.gif' alt=''>";
document.write(imgsrc);
return true;
}

 

 

Når return true står først i scriptet så fungerer det neste. Blir sendt videre, men bildet vises aldri.

function loadImage () {
return true;
var LI=document.getElementById("loadimage");
var imgsrc = "<img src='image/load.gif' alt=''>";
document.write(imgsrc);
}

 

???

Lenke til kommentar

Den mangler ikke, forsvant i klipp-og-lim. Ligger her i scriptet (som ikke fungerer helt):

<script type="text/javascript">
function loadImage(){
var LI=document.getElementById("loadimage");
var imgsrc = "<br><br><br><center><img src='../gfx/progress-loader.gif' alt='load'><br><br>Laster opp fil...";
document.write(imgsrc);
return true;
}
</script>

<table><tr><td width=90%>
<form enctype="multipart/form-data" action="../common/uploader.php?d={$_GET[d]}" method="POST" onsubmit="java script:loadImage();">
<input type="hidden" name="MAX_FILE_SIZE" value="200000000" />
Last opp fil: <input name="uploadedfile" type="file" size=100/>
<input type="submit" value="Upload File" />
</form>
<div id="loadimage"></div>

Lenke til kommentar

Here it is!!

<script type="text/javascript">
function loadImage(){
document.getElementById('loadimage').innerHTML = "<img src='image/load.gif' alt=''>";
return true;
}
</script>
<div id="loadimage"></div>
<form enctype="multipart/form-data" action="uploader.php" method="POST" onsubmit="java script:loadImage();">
Upload file: <input name="uploadedfile" type="file" size=100/>
<input type="submit" value="Upload File" />

 

Funker som bare det! :D

Endret av Famen
Lenke til kommentar

Har du husket og fjerne mellomrommet mellom java script på onsubmit i formen? - forumet lager et mellomrom når det kommer javascript opp...

 

Jeg bruker også samme koden til mitt prosjekt, funker som bare juling :p - eneste er at jeg laster ikke opp til et annet script, men jeg returnerer til den samme siden, altså "<form action=''>"

EDIT:

 

det er også lurt og laste bilde med en gang man kommer inn på siden, det kan man også bruke javascript til :)

 

pic1= new Image(126,22); 
pic1.src="http://someplace.com/images/load.gif";

Endret av Famen
Lenke til kommentar
  • 2 uker senere...
Har du husket og fjerne mellomrommet mellom java script på onsubmit i formen? - forumet lager et mellomrom når det kommer javascript opp...

 

Jeg bruker også samme koden til mitt prosjekt, funker som bare juling :p - eneste er at jeg laster ikke opp til et annet script, men jeg returnerer til den samme siden, altså "<form action=''>"

EDIT:

 

det er også lurt og laste bilde med en gang man kommer inn på siden, det kan man også bruke javascript til :)

 

pic1= new Image(126,22); 
pic1.src="http://someplace.com/images/load.gif";

 

Ville bare si at scriptet fungerer som bare det, og jeg har selv lånt litt av det.

Kjempegreier!

 

Dere er flinke.

Lenke til kommentar
Har du husket og fjerne mellomrommet mellom java script på onsubmit i formen? - forumet lager et mellomrom når det kommer javascript opp...

 

Jeg bruker også samme koden til mitt prosjekt, funker som bare juling :p - eneste er at jeg laster ikke opp til et annet script, men jeg returnerer til den samme siden, altså "<form action=''>"

EDIT:

 

det er også lurt og laste bilde med en gang man kommer inn på siden, det kan man også bruke javascript til :)

 

pic1= new Image(126,22); 
pic1.src="http://someplace.com/images/load.gif";

 

Ville bare si at scriptet fungerer som bare det, og jeg har selv lånt litt av det.

Kjempegreier!

 

Dere er flinke.

 

Jeg vil bare si at det ikke funker hos meg. Kanskje jeg ikke må sende scriptet til en annen side, men returnere til samme side?

Lenke til kommentar
Har du husket og fjerne mellomrommet mellom java script på onsubmit i formen? - forumet lager et mellomrom når teksten "javascript" kommer opp...

 

Vet ikke om du så den.. - du kan jo prøve og returnere til samme side, men funket for meg og gå videre til en annen side, og det skal ikke ha noe og si.. - kanskje du har disabled javascript i nettleseren?

 

Har du siden på nett, slik at vi kan se?

Endret av Famen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...