Avatar billede klgn Nybegynder
11. april 2006 - 12:02 Der er 10 kommentarer og
2 løsninger

upload-script, der ikke uploader filer

Hep!
Har fixet et upload-script, men der er et lille problem med det. Det virker ikke ved store filer (det skal uplaode filer på 4MB og opefter). Lægger sig smål filer op (har kun testet med noge hundrede kb), så er der ingen problemer
Jeg får ingen fejlmeddelelse, når jeg kører scriptet, den skriver bare "Fil uploadet", men når jeg så kontrollerer mappen, filen skulle ligge i, er den der ikke.
Jeg har undersøgt max upload-grænse hos udbyder, og den er der ikke problemer med.
Hvad kan problemet så være?
Avatar billede pvtsommer Nybegynder
11. april 2006 - 12:09 #1
Kom med din kode. Gør det noget nemmere at hjælpe dig :)
Avatar billede klgn Nybegynder
11. april 2006 - 12:38 #2
ok, here goes:


<?php
// ==============

// Configuration

// ==============

$uploaddir = "/home/httpd/vhosts/ntk-tennis.dk/httpdocs/netop/bladet";

// Hvor filerne skal uploades til

$allowed_ext = "pdf";

// Tilladte filtyper

$max_size = "100000000";


// Check filtype

$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";

}

}



// Check filstørrelse

if ($ok == "1") {

if($_FILES['file']['size'] > $max_size)

{

print "Filen er for stor max 10 mb tilladt!";

exit;

}


// Upload-delen

if(is_uploaded_file($_FILES['file']['tmp_name']))

{

move_uploaded_file($_FILES['file']['tmp_name'],$uploaddir.'/'.$_FILES['file']['name']);

}

print "Netop uploadet!<br />\n<a href='".($GLOBALS[HTTP_REFERER])."'>Upload et netop mere</a><br />\n<a href='../login.php'>Tilbage til admin-forsiden</a>";

} else {

print "Netop, kan ikke uploades, det er ikke et pdf-dokument!";

}
?>
Avatar billede pvtsommer Nybegynder
11. april 2006 - 12:43 #3
Det første jeg bemrækede... du har sat en 100 mb grænse, ikke 10 mb...

$max_size = "100000000";

Lav den om til:

$max_size = 10 * 1024;

Derudover har du et sikkerhedshul. Omdøb en exe-fil til .pdf, og den kan uplaodes.

Umiddelbart kan jeg dog ikke se nogen fejl til hvorfor den ikke kan uploade store filer :S
Avatar billede pvtsommer Nybegynder
11. april 2006 - 12:44 #4
Har du i øvrigt prøvet at trykke F5 i din FTP-mappe? Den opdaterer normalt ikke automatisk lige med det samme :)
Avatar billede klgn Nybegynder
11. april 2006 - 13:01 #5
jeg satte bare størrelsen usandsynligt højt, for at se, om jeg havde nok nuller på - fik aldrig rettet tilbage...
Har prøvet at opdatere i ftp-prog, filen er der ikke...
Hvad skal jeg gøre ved det sikkerhedshul, du nævner?
Avatar billede klgn Nybegynder
11. april 2006 - 13:02 #6
Jeg tænkte også mere på servertimeout, det var sådan set derfor, jeg ikke postede mit script i starten...
Avatar billede pvtsommer Nybegynder
11. april 2006 - 13:03 #7
Jeg ville lave noget filetype...

Til mine billeder bruger jeg gerne:

$filetype = $_FILES['texfile']['type'];
if($filetype == "image/gif") { $type = "gif"; }
if($filetype == "image/jpeg") { $type = "jpg"; }
if($filetype == "image/pjpeg") { $type = "jpg"; }
               
Du kan jo prøve at uploade nogle forskellige former for PDF-filer (gerne forskellige versioner, og så udskrive $_FILES['formfeltet']['type'] - så får du noget i stil med image/gif, hvis man nu uploader et billeder af typen gif. Så selv om det hedder .jpg, vil det blive gemt som et gif ;)
Avatar billede pvtsommer Nybegynder
11. april 2006 - 13:05 #8
Jeg må indrømme jeg aldrig har haft servertimeout problemer. Har selv et system hvor jeg ofte uploader flere hundrede megabyt i form af familie DVD'ere, hvor min familie så kan hente dem fra nær og fjern, og se hvordan det går med nevøer m.v.

Det er en indstilling jeg ALDRIG har haft problemer med, men kan jo være din udbyder har sat den, så du ikke kan belaste serveren særlig meget.

Kan du ikke lige poste din formular også? Så prøver jeg på min side :)
Avatar billede klgn Nybegynder
11. april 2006 - 13:06 #9
<form action="netopupload.php" method="post" ENCTYPE="multipart/form-data">
    <p><b>Fil:</b><br />
    <input type="file" name="file" size="30" /> <br />
    <input type="submit" value="Upload" /></p>
</form>
Avatar billede sone Nybegynder
11. april 2006 - 13:41 #10
Check værdien for upload_max_filesize i phpinfo: http://ntk-tennis.dk/phpinfo.php
Hvis du skal uploade større filer end 2M, så skal du have ændret det på webserveren.
Avatar billede klgn Nybegynder
11. april 2006 - 13:48 #11
sone> Pudsigt, for jeg spurgte nemlig udbyder om dette og fik oplyst, at der ikke var max for upload af filer.
Har droppet dem en mail med denne info, så ser vi, hvad der sker. Du får point, når jeg hører fra udbyder.

Pytsommer> du skal være velkommen til at poste et svar også, om ikke andet for at jeg fik rettet min sikkerhedsbrist, det kan du få 5 point for;)
Avatar billede pvtsommer Nybegynder
11. april 2006 - 17:06 #12
Hehe, jeg siger tak :) - Jeg ved slet ikke hvor stor "brist" det overhovedet er, men det er jo altid rart at være på den sikre side.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester