23. januar 2008 - 14:07Der er
18 kommentarer og 1 løsning
PHP upload igen igen
Hej Eksperter Jeg ved godt der findes utalligt mange tråde med dette emne og jeg har også søgt efter hjælp i dem men kan ikke få noget af det til at fungere.
Jeg vil lave en upload side på min hp, vha. php. Jeg er noob i php men er interesseret i at lære det. Jeg har prøvet en masse forskellige scripts jeg har fundet online, men det eneste jeg har kunne få til at uploade noget som helst er dette:
//This is our size condition if ($uploaded_size > 35000) { echo "Your file is too large.<br>"; $ok=0; }
//This is our limit file type condition if ($uploaded_type =="text/php") { echo "No PHP files<br>"; $ok=0; }
//Here we check that $ok was not set to 0 by an error if ($ok==0) { Echo "Sorry your file was not uploaded"; }
//If everything is ok we try to upload it else { if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) { echo "The file ".basename( $_FILES['uploadedfile']['name']). " has been uploaded"; } else { echo "Sorry, there was a problem uploading your file."; } } ?>
Problemet er bare, at det godkender hvad som helst. Jeg kan uploade filer uanset størrelse, uanset type osv. Jeg vil godt have det begrænset til at være filer mindre en 4 mb, og det må være diverse billed tyoer (jpg, bmp, gif, png) og pakkede filer (.rar, .zip og evt linux formater) og det må også være pdf.
Kan i hjælpe mig med at modificere dette script så det overholder disse restrictions? På forhånd tak!
jeg har prøvet at benytte Jakobs artikel men jeg kunne ikke få det til at virke.:! jeg har rettet det til med dine ændringer og nu virker størrelses begrænsningen., men kan du sige mig hvad den måler i? er det kb eller? Men begrænsningen på ikke at uploade php filer virker ikke:( kan man eventuelt ændre det således at i stedet for at sige hvilket man ikke godkender så skrive hvilke man netop godkender? Og tak for de hurtige svar.
Der er faktisk også nogle andre fejl med scriptet. Når man åbner siden står der: Sorry, there was a problem uploading your file. under upload knappen. og når man så uploader en fil er det meningen at den skal vise filnavnet., men det gør den ikke:(
okay nice., er det sådan at jeg kan få dig til at skrive det ind i scriptet så det virker med tilladte type: jpg, bmp, gif, pdf, txt, rar og zip..? Hvis du gider gøre det er det super lækkert., og hvis du så smider det som et svar får du dine velfortjente point:D
super.., det fungerer:D smider du et svar michael? Kan du sige mig hvor meget af koden jeg skal sætte inden for brackets'ne i if(isset($_POST['Upload'])){ HER ALTSÅ }..? For jeg troede det var al php'koden., men så virkede det ikke:S Men i hvert fald tusind tak for din meget hjælp:D og ja svar så får du point:D
Super. Er der evt noget andet man kan bruge end det der if(isset... for når jeg sætter den ind lige efter <?php og så sætter en slut tuborg mere lige før ?> så forsvinder den konstante tekst godt nok.., men den vil ikke uploade noget og viser heller ingen tekst efter man har trykket "Upload"..:S
oh og der er forresten stadig et problem med at den ikke viser navnet på den fil der er uploaded.:S altså den læser ikke det der står i "", dvs. .basename( $_FILES['uploadedfile']['name']). .., er det evt sådan du har et quick fix til dette?
Nå men jeg fandt ud af at få det til at virke, og jeg endte op med følgende kode (hvis der er andre der kan bruge det). Jeg ved ikke hvorfor men uanset hvor meget jeg sætter størrelsen til kan jeg maks få den til at uploade filer på ca 16 mb. Men her er koden: <form enctype="multipart/form-data" action="upload.php" method="POST"> Please choose a file: <input name="upload_file" type="file" /><br /> <input name="upload_submit" type="submit" value="Upload" /> </form>
if($ok) { if(move_uploaded_file($_FILES['upload_file']['tmp_name'], $target)) { echo "The file ".basename($_FILES['upload_file']['name']). " has been uploaded"; } else { echo "Sorry, there was a problem uploading your file."; } } } ?>
Undskyld der er gået så langtid før jeg svarer.., det er min onkels server så han har ændret det.., så det hele kører.., endnu engang tusind tak for hjælpen:D
Synes godt om
Ny brugerNybegynder
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.