Araho Skrevet 26. oktober 2009 Del Skrevet 26. oktober 2009 Hei! Jeg pusler med et publiserings-prosjekt, hvor man skrive artikler som publiseres på fremsiden av en webside. Så har jeg nylig prøvd å implementere en opplasting av bilde til artikkelen, da fremsiden blir veldig daff uten bilder. Det er denne kodesnutten som er problemet: if ( $_FILES["file"]["error"] > 0 ) { echo "Feil: " . $_FILES["file"]["error"] . "<br />"; } else {// Filtype-begrensninger if ( ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") && ($_FILES["file"]["size"] < 200000 )) // Størrelse under 200Kb { move_uploaded_file($_FILES["file"]["tmp_name"], "../images/" . $_FILES["file"]["tmp_name"]); } else { echo "Feil filtype eller størrelse! Bildet må være i filtypen .jpeg, .jpg, .gif eller .png og under 200Kb.<br><a href='history:back'></a>"; return; } } Er det noen som ser en umiddelbar feil? All hjelp mottas med takk Lenke til kommentar
Jonas Skrevet 26. oktober 2009 Del Skrevet 26. oktober 2009 (endret) Hva er problemet? Mottar du noen feilmelding? Rar oppførsel? Fortell oss i hvert fall litt da.. Ellers så ser jeg umiddelbart at du flytter filen fra tmp_name til images/tmp_name, noe jeg tviler på at du egentlig vil. Jeg tipper du bare ønsker å flytte bildet til mappen images/ med originalnavn. Isåfall må du se på $_FILES['file']['name']. Husk at scriptet også må ha skrivetilgang i mappen. Endret 26. oktober 2009 av Jonas Lenke til kommentar
Araho Skrevet 27. oktober 2009 Forfatter Del Skrevet 27. oktober 2009 Faktisk så ville jeg ha tmp_name, men jeg får prøve å legge inn en annen verdi, da det kom opp for meg at dette kanskje ikke gir filetternavn. Originalnavnet vil jeg egentlig ikke ha, men jeg kan legge inn originalnavnet og legge til ett tilfeldig tall bak. Og ja, jeg mottar den feilmeldingen jeg har lagt inn selv, altså "Feil filtype eller størrelse! Bildet må være i filtypen .jpeg, .jpg, eller .gif og under 200Kb.". Dette ville vel bety at feilen ligger i denne linjen: if ( ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") && ($_FILES["file"]["size"] < 200000 )) Grunnen til at jeg ikke gå mer info, var vel strengt tatt at jeg var trøtt og burde lagt meg, mtp at jeg skulle opp og på skolen i syv-tiden Lenke til kommentar
Jonas Skrevet 27. oktober 2009 Del Skrevet 27. oktober 2009 (endret) Vel, da er det ganske åpenbart: Filen er verken av type image/jpg eller image/jpeg, eller så er den større enn 200 KB. Edit: Vil samtidig anbefale å benytte paranteser på en litt annen måte. Med mindre du er 100% sikker på presedensen til operatørene, så vil du observere ganske rar oppførsel. if ( ( $_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/jpg" ) && ( $_FILES["file"]["size"] < 200000 ) Endret 27. oktober 2009 av Jonas Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 27. oktober 2009 Del Skrevet 27. oktober 2009 For en kjapp debugging kan du legge til dette f.eks. før du kjører if($_FILES[blabla][type]): var_dump($_FILES["file"]["type"])."<br />"; var_dump($_FILES["file"]["size"])."<br />"; die(); Hvis du sier hva som kommer ut da, så blir det lettere å hjelpe deg videre. Lenke til kommentar
Araho Skrevet 27. oktober 2009 Forfatter Del Skrevet 27. oktober 2009 (endret) Heh, jeg gjorde som du sa, lumted, og fikk ut NULL NULL. Regner med at det betyr at den ikke finner noen fil, som den da selvfølgelig ikke kan sjekke filtype eller størrelse på. Jeg kjører nå en test med enctype="multipart/form-data" i form-taggen Krysser fingrene for at dette er problemet... EDIT: Jada! Da er problemet løst, og uten så altfor mye bruk av facepalm <form>-taggen skal altså se slik ut hvis man vil laste opp filer: <form id="postform" method="post" action="postarticle.php" enctype="multipart/form-data"> Endret 27. oktober 2009 av Araho 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å