VisualStudio Skrevet 22. mai 2007 Skrevet 22. mai 2007 Hei har disse filene: UploadForm1.php <html> <head> <title># of Files to Upload</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="form1" method="post" action="uploadForm2.php"> <p>Enter the amount of boxes you will need below. Max = 9.</p> <p> <input name="uploadNeed" type="text" id="uploadNeed" maxlength="1"> </p> <p> <input type="submit" name="Submit" value="Submit"> </p> </form> </body> </html> uploadForm2.php <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="form1" enctype="multipart/form-data" method="post" action="processFiles.php"> <p> <? // start of dynamic form $uploadNeed = $_POST['uploadNeed']; for($x=0;$x<$uploadNeed;$x++){ ?> <input name="uploadFile<? echo $x;?>" type="file" id="uploadFile<? echo $x;?>"> </p> <? // end of for loop } ?> <p><input name="uploadNeed" type="hidden" value="<? echo $uploadNeed;?>"> <input type="submit" name="Submit" value="Submit"> </p> </form> </body> </html> processFiles.php <? $uploadNeed = $_POST['uploadNeed']; // start for loop for($x=0;$x<$uploadNeed;$x++){ $file_name = $_FILES['uploadFile'. $x]['name']; // strip file_name of slashes $file_name = stripslashes($file_name); $file_name = str_replace("'","",$file_name); $copy = copy($_FILES['uploadFile'. $x]['tmp_name'],$file_name); // check if successfully copied if($copy){ echo "$file_name | uploaded sucessfully!<br>"; }else{ echo "$file_name | could not be uploaded!<br>"; } } // end of loop ?> Dette fungerer utmerket med XAMPP, og alle filene jeg laster opp, havner i samme mappe som php-dokumentene ligger i. Er ingen racer i PHP, så kan noen fortelle meg hvordan jeg flytter de opplastede filene til f.eks /uploads, og om man kan fikse et script som viser alle filene som ligge i den mappen etterpå? Om noen kunne forklart (grundig) hvordan man gjøre det, hadde det vært flott Takk
Ståle Skrevet 22. mai 2007 Skrevet 22. mai 2007 Sjekk ut eksemplene her http://no2.php.net/manual/en/features.file-upload.php
VisualStudio Skrevet 22. mai 2007 Forfatter Skrevet 22. mai 2007 Sjekk ut eksemplene her http://no2.php.net/manual/en/features.file-upload.php 8674979[/snapback] Jeg kan ikke noe PHP
Ståle Skrevet 22. mai 2007 Skrevet 22. mai 2007 Jeg har dessverre ikke tid til a sette meg inn det akuratt na =/ Kan ikke filopplasting helt enda, sorry.
VisualStudio Skrevet 22. mai 2007 Forfatter Skrevet 22. mai 2007 Jeg har dessverre ikke tid til a sette meg inn det akuratt na =/Kan ikke filopplasting helt enda, sorry. 8675056[/snapback] ok Det er sikkert noen andre her som kan hjelpe meg?
Bakke Skrevet 23. mai 2007 Skrevet 23. mai 2007 (endret) Upload.php <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filnavn:</label> <input type="file" name="fil"" /> <br /> <input type="submit" value="Upload" /> </form> </body> </html> upload_file.php PHP <?phpif ($_FILES["fil"]["error"] > 0) { echo "Feil: " . $_FILES["fil"]["error"] . "<br />"; } else { if (file_exists("upload/" . $_FILES["fil"]["name"])) { echo $_FILES["fil"]["name"] . " eksisterer. "; } else { move_uploaded_file($_FILES["fil"]["tmp_name"], "upload/" . $_FILES["fil"]["name"]); echo "Lagret i: " . "upload/" . $_FILES["fil"]["name"]; } } ?> Et lite uploadscripte jeg laget litt fort og gale før jeg stakk på skolen Kan fikse sikkerhet osv senere om du er intressert, men har ikke tid nå. Endret 23. mai 2007 av Mr. Bakke
BlueEAGLE Skrevet 23. mai 2007 Skrevet 23. mai 2007 Dette er ikke et skript jeg ville brukt fordi dette skriptet legger to kopier av de opplastede filene på serveren. Eller nærmere bestemt dette scriptet fjerner ikke den midlertidige filen som blir lastet opp. Vet ikke om PHP sin søppelmann tar med seg den. Det kan jo være. Men du trenger små modifikasjoner for å få dette til å gjøre det du vil. <?php //Anbefaler lange åpnings-merker fordi ikke alle tjenere støtter kun <? $uploadNeed = $_POST['uploadNeed']; // start for loop for($x=0;$x<$uploadNeed;$x++) { $file_name = $_FILES['uploadFile'. $x]['name']; // strip file_name of slashes $file_name = stripslashes($file_name); $file_name = str_replace("'","",$file_name); //Put the uploaded file in the uploads directory $file_name = 'uploads/'.$file_name; //Check if this file already exists if(file_exists($file_name)) { echo "$file_name already exists. Skipping!<br>"; //Delete the temporary file. unlink($_FILES['uploadFile'.$x]['tmp_name']); } else { // check if successfully copied if(move_uploaded_file($_FILES['uploadFile'.$x]['tmp_name'], $file_name)) { echo "$file_name | uploaded sucessfully!<br>"; } else { echo "$file_name | could not be uploaded!<br>"; } } } // end of loop ?> Nå vil skriptet sjekke om filen eksisterer i uploads katalogen før den kopierer den over. Den modifikasjonen som gjør det du ba om er $file_name = 'uploads/'.$file_name; Det denne gjør er simpelten å legge katalogen uploads før filnavnet. Denne koden er ikke testet med skrevet etter minne. ...og om du skal styre med PHP så kan det være greit og lære seg språket.
VisualStudio Skrevet 23. mai 2007 Forfatter Skrevet 23. mai 2007 (endret) ...og om du skal styre med PHP så kan det være greit og lære seg språket. 8678145[/snapback] Hehe. Ja, så klart:) Men hvilken fil skal jeg legge til det scriptet du postet i?' Edit: Altså det skal kun lastes opp bildefiler. Jpg, GIF, bmp, png Når disse er lastet opp, skal de vises i "download" seksjonen. er det mulighet for å vise bildene i miniatyr løsning de som da har blitt lastet opp til "uploads" ? Endret 23. mai 2007 av VisualStudio
Bakke Skrevet 23. mai 2007 Skrevet 23. mai 2007 (endret) Klikk for å se/fjerne innholdet nedenfor PHP <?php //Anbefaler lange åpnings-merker fordi ikke alle tjenere støtter kun <? $uploadNeed = $_POST['uploadNeed']; // start for loop for($x=0;$x<$uploadNeed;$x++) { $file_name = $_FILES['uploadFile'. $x]['name']; // strip file_name of slashes $file_name = stripslashes($file_name); $file_name = str_replace("'","",$file_name); //Put the uploaded file in the uploads directory $file_name = 'uploads/'.$file_name; //Check if it's an image if (($_FILES['uploadFile'.$x]["type"] != "image/gif") || ($_FILES['uploadFile'.$x]["type"] != "image/jpg")) || ($_FILES['uploadFile'.$x]["type"] != "image/bmp")) || ($_FILES['uploadFile'.$x]["type"] != "image/png")) { echo "$file_name is not an image<br>"; unlink($_FILES['uploadFile'.$x]['tmp_name']); } //Check if this file already exists if(file_exists($file_name)) { echo "$file_name already exists. Skipping!<br>"; //Delete the temporary file. unlink($_FILES['uploadFile'.$x]['tmp_name']); } else { // check if successfully copied if(move_uploaded_file($_FILES['uploadFile'.$x]['tmp_name'], $file_name)) { echo "$file_name | uploaded sucessfully!<br>"; } else { echo "$file_name | could not be uploaded!<br>"; } } } // end of loop ?> Bygget litt videre på scriptet til BlueEAGLE jeg da Scriptet sjekker nå om filen er av ønsket type, vis ikke vil, ikke filen bli lastet opp. Har ikke testet scriptet, så kan ikke garantere at det fungerer. BlueEAGLE, temp filen som ble lastet opp i det forrige scriptet mitt vil bli slettet når scriptet er slutt. Forresten: Lettere å lese scriptet om du bruker PHP taggen. Edit: La til en skjul tag, så ikke scriptet ødela bredden på forumet. Endret 23. mai 2007 av Mr. Bakke
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå