Avatar billede learner Praktikant
23. januar 2006 - 20:05 Der er 10 kommentarer og
1 løsning

upload af fil

Hej, jeg har lavet et script så folk kan uploade filer på mit site. Det virker fint nok. Så er det jeg gerne vil gå fra method="post" til method="get" - Er dette muligt eller skal jeg bare glemme det så? (jeg bruger multipart/form-data)

På forhånd tak :o)
Avatar billede jensgram Nybegynder
23. januar 2006 - 20:22 #1
Hvorfor dog det?

GET understøtter som standard (her taler jeg Apache og REN erfaring) kun ganske få KB, mens POST understøtter 2-8MB.

Begge er standard-værdier som du måske selv kan ændre, men adressen ved upload bliver jo utroligt "syg". Desuden har de fleste browsere "konfirmation" ved reload af sider med POST-vars.

Altså: GET kan sikkert lade sig gøre, men jeg ville aldrig forsøge mig med det. Med mindre der er vægtig grund, selvfølgelig ;)


- Jens Gram
Avatar billede learner Praktikant
23. januar 2006 - 20:32 #2
jo men det er fordi mange af mine brugere bruger 'frem' og 'tilbage' knapperne i browseren. Og så kunne jeg gøre det lidt lettere for de brugere ved _GET for så skal de ikke refreshe
Avatar billede jensgram Nybegynder
23. januar 2006 - 20:36 #3
Nej, men til gengæld vil filen vel blive sendt til serveren igen. I stedet bør du lade din upload-formular POSTe til en fil (upload.php, say), der indeholder:

<?php

// File handling goes here

header('Location: sidenMedFormularen.php');

?>
Avatar billede jensgram Nybegynder
23. januar 2006 - 20:37 #4
På samme måde som Eksperten sender nye indlæg til respons.php, men det "ser" man ikke, da respons.php sender tilbage til spørgsmålet - uden GET/POST vars, så der kan refreshes lige så tosset man vil.
Avatar billede jensgram Nybegynder
23. januar 2006 - 20:38 #5
(I upload.php kan der så komme fejlbeskeder til brugeren, hvis der gik noget galt under upload.)
Avatar billede learner Praktikant
23. januar 2006 - 20:43 #6
Jeg er ikke helt med... Desværre
Men jeg vælger at fortsætte med $_POST[]
Kan du prøve at forklare lidt mere, så kan det være jeg fatter det :o)
Avatar billede jensgram Nybegynder
23. januar 2006 - 20:50 #7
Ja, din formular henviser til en PHP-fil, der tager sig af upload. Det lyder som om, at denne side er "siden selv":

side.php:

<html>
....
<form method="POST" action="side.php">
...


Hvis formularen i stedet peger til upload.php:

side.php:

<html>
....
<form method="POST" action="upload.php">
...


upload.php:

<?php

// File handling goes here

header('Location: side.php');

?>

Håndterer upload.php alle mekanismer til at gemme filen (den uploadede, forstås) og sender derefter brugeren tilbage til side.php (hvor formularen var). På den måde kan brugeren reloade side.php (POST-variabler er jo sendt til upload.php, der sendte tilbage til side.php, så side.php ikke "indeholder" POST-variabler).

Håber det giver mening.

- Jens
Avatar billede jensgram Nybegynder
23. januar 2006 - 20:52 #8
se http://www.eksperten.dk/spm/682053 , hvor phpnewbie beskriver samme løsning (i et mere forståeligt sprog).
Avatar billede learner Praktikant
23. januar 2006 - 20:54 #9
Mange tak :o)
Jeg vil forsøge mig med det.

Vil du smide et svar :o)
Avatar billede jensgram Nybegynder
23. januar 2006 - 20:55 #10
Klart. Håber det lykkes. Ellers skriver du igen.
Avatar billede learner Praktikant
23. januar 2006 - 20:57 #11
Ok tak for det hele :o)
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