kroekkete Skrevet 11. juni 2004 Del Skrevet 11. juni 2004 (endret) Hei, jeg skal rename en bildefil, men er "litt" usikker på hvordan det gjøres... Jeg har disse variablene: /* Forenkler navnet på bildevariablene */ $bildenavn = ($_files['batbilde']['name']); $bildetype = ($_files['batbilde']['type']); $bildesize = ($_files['batbilde']['size']); $bildetemp = ($_files['batbilde']['tmp_name']); Og jeg vet at jeg skal bruke rename(). Men, hvordan finner jeg pathen til tempkatalogen på serveren? -Eller er det så enkelt at jeg kan skrive rename($bildetemp, nyttnavn(uten path).jpeg); Hvis ja, må jeg da også ha med filendelsen i det nye navnet? -Eller beholder den automatisk den opprinnelige filendelsen? På forhånd takk for hjelpen! Endret 14. juni 2004 av primaxx Lenke til kommentar
The Red Devil Skrevet 11. juni 2004 Del Skrevet 11. juni 2004 is_uploaded_file($temp_file_name); move_uploaded_file($temp_file_name,"full web path/tempfile.tmp"); Burde hjelpe deg langt på vei Lenke til kommentar
Nervetattoo Skrevet 11. juni 2004 Del Skrevet 11. juni 2004 Mener ganske bestemt å huske at is_uploaded_file() er gammel og ikke fungerer etter move_uploaded_file ble introdusert (4.2.3?) move_uploaded_file henter selv automatisk inn tmp katalogen når du bruker den: move_uploaded_file($_FILES['inputbok']['tmp_name'], filnavn.filtype); Du må spesifisere filnavn og type. tmp filen vil hete noe som phpXX.tmp (XX representer et tall). Det er min lille erfaring med området i hvertfall, navn på tmp fil er uansett uvesentlig. Lenke til kommentar
The Red Devil Skrevet 11. juni 2004 Del Skrevet 11. juni 2004 (endret) Hmm veit ikkje, bruker iallefall ennå "is_uploaded_file()" uten problemer. [EDIT] http://bg2.php.net/is_uploaded_file Er støttet ennå denne funksjonen. Faktisk så kom begge dei to i samme php versjon. Eventuelt vist du vil lese noko meir primaxx http://bg2.php.net/manual/en/features.file-upload.php Endret 11. juni 2004 av The Red Devil Lenke til kommentar
kroekkete Skrevet 13. juni 2004 Forfatter Del Skrevet 13. juni 2004 Kjære dere, jeg blir GAL... Holdt på med dette nå i mange dager, uten å få det til... Ser dere hva jeg gjør galt? Koden ser for øyeblikket slik ut: <?php /* Mappen bildene skal lagres i */ $uploads = "/home/xxx/public_html/xxx/images/"; /* Forenkler navnet på bildevariablene */ $bildenavn = ($_files['batbilde']['name']); $bildetype = ($_files['batbilde']['type']); $bildesize = ($_files['batbilde']['size']); $bildetemp = ($_files['batbilde']['tmp_name']); include("databasekopling.php"); $sql = "SELECT photo_id FROM baten ORDER BY photo_id desc LIMIT 1"; $sql_resultat = mysql_query($sql); $ant_rekker = mysql_num_rows($sql_resultat); /* Smør på flesk, ikke sant? */ if($ant_rekker > 0){ $photo_id = $photo_id; $photo_id++; } else { $photo_id == 1; } move_uploaded_file(($_files['batbilde']['tmp_name']) , $uploads.($_files['batbilde']['name']).($_files['batbilde']['type'])); rename($uploads.($_files['batbilde']['tmp_name']) , $uploads.$photo_id.($_files['batbilde']['type'])); ?> Feilmeldingen jeg for øyeblikket genererer ser slik ut: Warning: rename(/home/xxx/public_html/xx/images/,/home/xxx/public_html/xx/images/1): Invalid argument in /home/xxx/public_html/xx/inc/minebatersql.php on line 29 Linje 29 er rename-linjen. Det jeg forsøker på er: Å laste opp et bilde Sjekke om det tidligere er lastet opp bilder, og navngi bildet ut fra det. Takker som alltid for all hjelp... Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 is_uploaded_file($temp_file_name); move_uploaded_file($temp_file_name,"full web path/tempfile.tmp"); Burde hjelpe deg langt på vei Når det gjelder is_uplooade_file mangler jeg kompetanse til å forstå hva du mener. Hva har den funksjonen med renamingen å gjøre? Mvh Primaxx Lenke til kommentar
Torbjørn Skrevet 14. juni 2004 Del Skrevet 14. juni 2004 Warning: rename(/home/xxx/public_html/xx/images/,/home/xxx/public_html/xx/images/1): Invalid argument in /home/xxx/public_html/xx/inc/minebatersql.php on line 29 Ta en nærmere titt på feilmeldingen du får, (slike er ment å være til hjelp!) Den sier at du prøver å rename en katalog, det er kanskje ikke det du ønsker? Og hvis man så ser på ditt rename-uttrykk, bør dette være en klar indikasjon på at det du tror skal inneholde et filnavn faktisk er tomt. Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 Takk for respons Thorbjørn! Men jeg forstår ikke hvorfor den er tom... Filen som sender skjemaet ser slik ut <form enctype="multipart/form-data" METHOD="POST" ACTION="http://xx/xxx/inc/minebatersql.php" NAME="minebaterskjema"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> Bilde av båten: <input type="file" name="batbilde" size="40"> <INPUT TYPE="submit" NAME="send" VALUE="send"> </form> , og bildet jeg tester med er et 16 kb's jpeg. Det er vel ikke noen grunn til at ikke det skulle bli lastet opp? -Og hvis det blir lastet opp så er vel denne riktig? : ($_files['batbilde']['tmp_name']) Jeg beklager at jeg spør om ting som sikkert er helt banalt for mange av dere... Mvh Primaxx Lenke til kommentar
Torbjørn Skrevet 14. juni 2004 Del Skrevet 14. juni 2004 filene ligger i $_FILES, med store bokstaver, står litt om forskjellige globale arrays her: http://bg2.php.net/manual/en/language.vari....predefined.php Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 (endret) filene ligger i $_FILES, med store bokstaver, står litt om forskjellige globale arrays her: http://bg2.php.net/manual/en/language.vari....predefined.php Takk igjen Thorbjørn! Jeg har vært der mange ganger i helgen, men titter igjen... Men, kan du se noe som er feil i scriptet mitt? Mvh Primaxx -Jeg slang forresten på dette, som umiddelbart ga feilmeldingen at jeg ikke hadde lastet opp noen fil: if (isset($bildetemp)) { $error = "Du må velge en fil å laste opp!\n"; if ($error) { echo $error; } } Prøvde for ordens skyld også å bytte ut $bildetemp med $bildenavn i snutten over, uten at det endret noe... Endret 14. juni 2004 av primaxx Lenke til kommentar
Torbjørn Skrevet 14. juni 2004 Del Skrevet 14. juni 2004 $_files med små bokstaver er en feil... prøvde du med store? Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 (endret) $_files med små bokstaver er en feil... prøvde du med store? Ja. Med en gang! Her er feilmeldingene jeg får nå: Du må velge en fil å laste opp! Warning: move_uploaded_file(/home/xx/public_html/xxx/images/adir.gifimage/gif): failed to open stream: No such file or directory in /home/xx/public_html/xxx/inc/minebatersql.php on line 29 Warning: move_uploaded_file(): Unable to move '/tmp/phpWUJsrm' to '/home/xx/public_html/xxx/images/adir.gifimage/gif' in /home/xx/public_html/xxx/inc/minebatersql.php on line 29 Warning: rename(/home/xx/public_html/xxx/images//tmp/phpWUJsrm,/home/xx/public_html/xx/images/1image/gif): No such file or directory in /home/xx/public_html/xxx/inc/minebatersql.php on line 30 Filen jeg forsøkte å laste opp het adir.gif Her er linje 29 og 30: move_uploaded_file(($_FILES['batbilde']['tmp_name']) , $uploads.($_FILES['batbilde']['name']).($_FILES['batbilde']['type'])); rename($uploads.($_FILES['batbilde']['tmp_name']) , $uploads.$photo_id.($_FILES['batbilde']['type'])); Hva annet kan jeg gjøre feil? Mvh Primaxx Endret 14. juni 2004 av primaxx Lenke til kommentar
Torbjørn Skrevet 14. juni 2004 Del Skrevet 14. juni 2004 <?php echo "<pre>"; print_r($_FILES); echo "</pre>"; ?> legg det øverst i dokumentet så ser du hva du har av tilgjengelige "ting" i $_FILES arrayet Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 Hey, den var kjekk! Her er output: Array ( [batbilde] => Array ( [name] => adir.gif [type] => image/gif [tmp_name] => /tmp/phpwxv413 [error] => 0 [size] => 14524 ) ) Mvh Primaxx Lenke til kommentar
Torbjørn Skrevet 14. juni 2004 Del Skrevet 14. juni 2004 Jeg drister meg til å påstå at du ikke har giddet å lese dokumentasjonen for move_uploaded_file, for da hadde du sett eksemplet der som gjør akkurat det du ønsker å gjøre... Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 Jeg drister meg til å påstå at du ikke har giddet å lese dokumentasjonen for move_uploaded_file, for da hadde du sett eksemplet der som gjør akkurat det du ønsker å gjøre... Jeg er redd du tar feil der, har sittet til langt på natt hele helgen... MEN! Nå får jeg lastet opp bildet! Dette virker: move_uploaded_file(($_FILES['batbilde']['tmp_name']) , $uploads.($_FILES['batbilde']['name'])); Mens det jeg tidligere hadde, som ikke virket: move_uploaded_file(($_FILES['batbilde']['tmp_name']) , $uploads.($_FILES['batbilde']['name']).($_FILES['batbilde']['type'])); Jeg hadde med andre ord forvansket det hele... -Og takket være det du fortalte Fjartan fikk jeg til renamingen også! Endelig kode ble: $file_ext = array_pop(explode('/', ($_FILES['batbilde']['type']))); move_uploaded_file(($_FILES['batbilde']['tmp_name']) , $uploads.($_FILES['batbilde']['name'])); rename($uploads.($_FILES['batbilde']['name']) , $uploads.$photo_id.'.'.$file_ext); Tusen takk for hjelpen! Lenke til kommentar
Torbjørn Skrevet 14. juni 2004 Del Skrevet 14. juni 2004 ok, flott. her står eksemplet jeg sikter til: http://no2.php.net/manual/en/features.file-upload.php <?php // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead // of $_FILES. $uploaddir = '/var/www/uploads/'; $uploadfile = $uploaddir . $_FILES['userfile']['name']; print "<pre>"; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "File is valid, and was successfully uploaded. "; print "Here's some more debugging info:\n"; print_r($_FILES); } else { print "Possible file upload attack! Here's some debugging info:\n"; print_r($_FILES); } print "</pre>"; ?> Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 Nå som logikken har falt på plass hos meg har jeg ingen problemer med å se hva den koden gjør. Det er verre når $-tegnene svømmer rundt på netthinnen som en sildestim og man overhodet ikke skjønner hva man driver med... Men, igjen, takk! Lenke til kommentar
Gilbert Skrevet 14. juni 2004 Del Skrevet 14. juni 2004 -Og takket være det du fortalte Fjartan fikk jeg til renamingen også! ååå... det var da så lite Lenke til kommentar
kroekkete Skrevet 14. juni 2004 Forfatter Del Skrevet 14. juni 2004 -Og takket være det du fortalte Fjartan fikk jeg til renamingen også! ååå... det var da så lite Var vel strengt tatt ment som: "Og takket være det du, Thorbjørn, fortalte Fjartan fikk jeg til renamingen også..." 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å