nree Skrevet 20. november 2005 Del Skrevet 20. november 2005 (endret) Jeg har ett bildegalleri på en klanside som jeg vil at medlemmer kan laste opp siden egne bilder til. For og gjøre det vil jeg ha ett upload script på admin siden. Dette scriptet skal være slik at når man trykker på en dropdown meny står det nicket til den og den klanmedlemen og når man trykker på den skal man kunne laste opp til den mappen som heter det samme. Vist det ikke er noe mappe så hadde det vert greit om scriptet laget en.. Er det noen som vet om noe slikt eller kan lage noe slik? Endret 20. november 2005 av goggen90 Lenke til kommentar
???????? Skrevet 20. november 2005 Del Skrevet 20. november 2005 Det er fortsatt over en måned igjen til jul, så det er litt tidlig å håpe på at noen skal lage dette til deg. Men du kan prøve hotscripts.com - der finner du mange ferdige scripts. Lenke til kommentar
Zic0 Skrevet 20. november 2005 Del Skrevet 20. november 2005 Eller så kan du betale noen for å gjøre det... Lenke til kommentar
stian90_2 Skrevet 20. november 2005 Del Skrevet 20. november 2005 (endret) Kan vel ikke være vanskeligere en og bruke samme upload scriptet flere ganger. Bare endre litt i det slik at det er til di forskjellige pers. Fant dette i et forum og synes det funker kjempe bra: <?php /* Mappa som filene blir lastet opp i */ $mappe = "images/"; /* Filer som er lov å laste opp */ $allowed_ext = "jpg, gif,jpeg, png"; /* Maks størelse på bilde som er lov */ $max_size = "25000"; // 25000 er det samme som 25kb /* Maks høyde på bilde som er lov */ $max_height = "1000"; // Måles i pixler (px) /* Maks bredde på bilde som er lov */ $max_width = "1000"; // Måles i pixler (px) // Sjekker at alt følger dine krav $extension = pathinfo($_FILES['file']['name']); $extension = $extension[extension]; $allowed_paths = explode(", ", $allowed_ext); for($i = 0; $i < count($allowed_paths); $i++) { if ($allowed_paths[$i] == "$extension") { $ok = "1"; } } if ($ok == "1") { if($_FILES['file']['size'] > $max_size) { print "Fila tar for stor plass! " . $max_size . " er quoten på hvor stor fila kan være!"; exit; } if ($max_width && $max_height) { list($width, $height, $type, $w) = getimagesize($_FILES['file']['tmp_name']); if($width > $max_width || $height > $max_height) { print "Filen er for bred eller/og høy!<br>Max bredde er " . $max_width . "px<br>Max høyde er " . $max_height . "px."; exit; } } // Alt er OK, derfor laster vi opp filen if(is_uploaded_file($_FILES['file']['tmp_name'])) { move_uploaded_file($_FILES['file']['tmp_name'],$mappe.'/'.$_FILES['file']['name']); } print "Informasjonen ble lastet opp, og er nå under godkjenning."; } else { print "Den filen du prøvde å laste opp har en filtype som ikke er lov å laste opp!"; } ?> Endret 20. november 2005 av stianiquniez Lenke til kommentar
nree Skrevet 22. november 2005 Forfatter Del Skrevet 22. november 2005 (endret) Tusen takk for det... For og lage en form hvor man kan velge hvor man vil laste opp må man lage deg til $mappe ja, men vil da mappen bli opprettet vist den ikke finnes? Er det mulig og legge det inn i koden, at vist mappa ikke finnes, lag en (da kommer vell også chmod inn i bildet) Jeg skal teste scriptet når jeg kommer hjemm.. sitter på skolen (Skolelinux) Hvordan skal jeg sette opp selve formen? har nå index.php: <form method='POST' action="upload.php"> Album: <input type="text" name="mappe" size="20"><br /> Fil: <input type="file" name="file" size="20"><br /><input type="submit" value="Last opp!" name="submit"> </form> og upload.php <?php // Upload script starter: /* Mappa som filene blir lastet opp i */ /* $mappe = "images/"; */ $mappe = $_GET['mappe']; /* Filer som er lov å laste opp */ $allowed_ext = "jpg, gif,jpeg, png"; /* Maks størelse på bilde som er lov */ $max_size = "9999999999"; // 25000 er det samme som 25kb / 0.25mb /* Maks høyde på bilde som er lov */ $max_height = "50000"; // Måles i pixler (px) /* Maks bredde på bilde som er lov */ $max_width = "50000"; // Måles i pixler (px) // Sjekker at alt følger dine krav $extension = pathinfo($_FILES['file']['name']); $extension = $extension[extension]; $allowed_paths = explode(", ", $allowed_ext); for($i = 0; $i < count($allowed_paths); $i++) { if ($allowed_paths[$i] == "$extension") { $ok = "1"; } } if ($ok == "1") { if($_FILES['file']['size'] > $max_size) { print "Fila tar for stor plass! " . $max_size . " er quoten på hvor stor fila kan være!"; exit; } if ($max_width && $max_height) { list($width, $height, $type, $w) = getimagesize($_FILES['file']['tmp_name']); if($width > $max_width || $height > $max_height) { print "Filen er for bred eller/og høy!<br>Max bredde er " . $max_width . "px<br>Max høyde er " . $max_height . "px."; exit; } } // Alt er OK, derfor laster vi opp filen if(is_uploaded_file($_FILES['file']['tmp_name'])) { move_uploaded_file($_FILES['file']['tmp_name'],$mappe.'/'.$_FILES['file']['name']); } print "Informasjonen ble lastet opp, og er nå under godkjenning."; } else { print "Den filen du prøvde å laste opp har en filtype som ikke er lov å laste opp!"; } ?> http://goggen.simplemachines.no/eltax/test/ Edit: La til scriptene osv.. Endret 22. november 2005 av goggen90 Lenke til kommentar
nree Skrevet 23. november 2005 Forfatter Del Skrevet 23. november 2005 (endret) Hmm.. ingen som vet noe (bumpeti bump!) Endret 23. november 2005 av goggen90 Lenke til kommentar
Sjark Skrevet 24. november 2005 Del Skrevet 24. november 2005 er det mulig og lage en dropdown meny i steden for og skrive inn mappen du skal uploade til? Lenke til kommentar
nree Skrevet 24. november 2005 Forfatter Del Skrevet 24. november 2005 Det skal være mulig.. Men jeg vet ikke hvorfor scriptet ikke funker enda! Lenke til kommentar
stian90_2 Skrevet 24. november 2005 Del Skrevet 24. november 2005 Får du noen feilmeldinger eller noe slikt ? Lenke til kommentar
kakkle Skrevet 24. november 2005 Del Skrevet 24. november 2005 (endret) Du må ha med en ekstra attributt encoding type (enctype) i form taggen for å kunne laste opp filer: <form enctype="multipart/form-data" action="upload.php" method="POST"> En annen ting er et manglende mellom i $allowed_ext, som vil gi deg problemer med å laste opp gif og jpeg filer, men det ser du sikkert selv Endret 24. november 2005 av kakkle Lenke til kommentar
nree Skrevet 24. november 2005 Forfatter Del Skrevet 24. november 2005 (endret) Du må ha med en ekstra attributt encoding type (enctype) i form taggen for å kunne laste opp filer: <form enctype="multipart/form-data" action="upload.php" method="POST"> En annen ting er et manglende mellom i $allowed_ext, som vil gi deg problemer med å laste opp gif og jpeg filer, men det ser du sikkert selv 5202827[/snapback] Jeg gjorde det du sa.. Warning: move_uploaded_file(/mullah.jpg): failed to open stream: Permission denied in /hsphere/local/home/simplema/goggen.simplemachines.no/eltax/test/upload.php on line 47 Warning: move_uploaded_file(): Unable to move '/tmp/phpyjnouw' to '/mullah.jpg' in /hsphere/local/home/simplema/goggen.simplemachines.no/eltax/test/upload.php on line 47 Informasjonen ble lastet opp, og er nå under godkjenning. http://goggen.simplemachines.no/eltax/test/ Endret 24. november 2005 av goggen90 Lenke til kommentar
kakkle Skrevet 24. november 2005 Del Skrevet 24. november 2005 (endret) du bruker $_GET['mappe'] for å få verdien til mappe. Siden du sender formdataen med post metoden, må du bruke $_POST['mappe']. ($_GET bruker for å hente verdier fra url) Du må også sørge for mappen eksisterer, og at du har skriverettigheter til den. (chmod 0777). En annen ting du bør gjøre, for at det hele skal bli litt mer brukervennlig, er å la filendelsen være uavhengig av store / små bokstaver. Slik det er nå, så får du ikke lastet opp bilder med endelsene JPG, GIF, PNG. Endret 24. november 2005 av kakkle Lenke til kommentar
nree Skrevet 24. november 2005 Forfatter Del Skrevet 24. november 2005 kakkle: Er det mulig at scriptet oppretter en mappe vist den ikke finnes? Lenke til kommentar
kakkle Skrevet 24. november 2005 Del Skrevet 24. november 2005 (endret) Fint mulig det... Ta en titt på følgende funksjoner: file_exists is_dir mkdir Du må først sjekke om katalogen finnes (filen, file_exists). Dersom den finnes, sjekk om det er en katalog (is_dir). Nei på ett av disse spørsmålene, gjør at du må lage mappen med mkdir. EDIT: La inn litt linjeskift Endret 24. november 2005 av kakkle Lenke til kommentar
nree Skrevet 24. november 2005 Forfatter Del Skrevet 24. november 2005 Jeg er desverre ikke så veldig god på PHP som jeg skulle ønsket.. Gidder du forklare litt nermere hva du mener? Hvor skal jeg legge disse scriptene, osv.. Lenke til kommentar
kakkle Skrevet 24. november 2005 Del Skrevet 24. november 2005 (endret) Gir deg ikke koden direkte, men skriver litt pseudokode på hvordan det skal bli... Du trenger egentlig bare legge inn if / else. Pseudokode: $mappe = $_POST["mappe"]; Eksister $mappe (Bruk file_exists($mappe))? JA: ($mappe eksisterer) Er $mappe en mappe (dir) ? (Bruk is_dir($mappe)) JA: ($mappe er en mappe) mappen finnes. Alt ok NEI: ($mappe er ikke en mappe) $mappe er en fil, opprett $mappe med mkdir($mappe) NEI: ($mappe eksister ikke) $mappe finnes ikke, opprett mappen med mkdir($mappe) Klarer du å gjøre dette om til if / else setninger, så er du på god vei Det forutstter at du har skrivetilgang til den mappen hvor du skal opprette mappen. Det vil si at den mappen som upload.php ligger i må ha skrivetilgang for alle (0777) , eller for den brukeren som kjører php scriptet EDIT: Dette kan legges inn etter at du har sjekket at filen er gyldig (med tanke på filendelse, størrelse osv. Slik at du ikke oppretter en mappe unødvendig. Den første linjen ($mappe = $_POST['mappe']) legger du inn istedetfor $mappe = $_GET['mappe'] Endret 24. november 2005 av kakkle Lenke til kommentar
nree Skrevet 25. november 2005 Forfatter Del Skrevet 25. november 2005 Kansje jeg klarer det, kansje ikke.. Tviler egentlig på at jeg får det til med di minimalistiske kunskapene jeg har om PHP, men skal prøve når jeg kommer hjem.. Skrivedag i Norsk nå.. Lenke til kommentar
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å