Avatar billede MSR Juniormester
30. januar 2011 - 18:51 Der er 5 kommentarer og
1 løsning

Upload script vil kun uploade enkelte filer

<?
if(!$session->logged_in)
{    
    die("<div style='background-color:#FF0000'> Du kan ikke uploade filer uden at logge ind!</div>");
}

$filename = "";
$klasse = "";

if (isset($_POST['hemmelig']))
{
    if ($_POST['hemmelig'] == 'ja')
    {
        $klasse = 'hemmelig';
    }
    else
    {
        $klasse = 'offentlig';
    }
};

// check that we have a file
if (empty($_FILES["uploaded_file"]))
{
    die("<div style='background-color:#FF0000'> Fejl: ingen fil uploaded</div>");
};

// get variables
$filename = basename($_FILES['uploaded_file']['name']);
$ext = strtolower(substr($filename, strrpos($filename, '.') + 1));
$newname = dirname(__FILE__).'/filer/'.$filename;

// check file size
if ($_SERVER['CONTENT_LENGTH'] > (3500 * 1024))
{
    die("Filen er for stor!");
};

// check that file does not exist
if (file_exists($newname))
{
    die("<div style='background-color:#FF0000'> Fejl: Filen ".$_FILES["uploaded_file"]["name"]." findes allerede!</div>");
};

// check if the file is DOC/XLS/PDF file
if ($ext != "doc" && $ext != "xls" && $ext != "pdf")
{
    echo $newname;
    die("<div style='background-color:#FF0000'> Fejl: kun .doc/.DOC/.xls/.XLS/.pdf/.PDF filer kan uploades.<br>Lav din filtype om.</div>");
}

if (move_uploaded_file($_FILES['uploaded_file']['name'],$newname))
{
    echo "<div style='background-color:#00CC00'>Fil uploadet! Filen er gemt som: $filename [".$klasse."]</div>";
    mysql_query("INSERT INTO filer (titel, bruger, klasse, updato) VALUES ('$filename', '$session->username', '$klasse', NOW())") or die(mysql_error());
}
else
{
    echo ($_SERVER['CONTENT_LENGTH']);
    die("<div style='background-color:#FF0000'> Der skete en fejl. Prøv igen!</div>");
};
   
   

?>

jeg får hele tiden den sidste fejl men ingen forklaring.
error_reporting(E_ALL); er på men giver mig ikke noget at komme efter?
Jeg kan uploade nogle filer og ikke andre uden overhoved grund. test.pdf virker men hejsa.doc virker ikke?
jeg kan virkeligt ikke lure hvorfor den er så selektiv?
Håber nogen kan se hvor jeg har lavet en fejl?

ps: Det er faktisk et script jeg har fundet og rettet til så denne del har jeg faktisk ikke selv lavet. jeg kunne ikke gennemskue den...
Avatar billede MSR Juniormester
30. januar 2011 - 19:25 #1
hmmm faktisk kan det slet ikke uploade noget nu?
hvad hulen har jeg pillet ved?

Magnus
Avatar billede rix Novice
30. januar 2011 - 19:33 #2
har selv idag bøvlet med det men har erfaret at
if (move_uploaded_file($_FILES['uploaded_file']['name'],$newname))
skal være
if (move_uploaded_file($_FILES['smylie']['tmp_name'];,$newname))
du skal bare have denne $_FILES['smylie']['tmp_name']; istedet for
$_FILES['smylie']['name'];
Avatar billede rix Novice
30. januar 2011 - 19:35 #3
if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'];,$newname))
kiggede lige i min egen og opdaget at du har en anden navn end min :D
Avatar billede MSR Juniormester
30. januar 2011 - 20:14 #4
; og , lige efter hinanden?
Det fejler...

Magnus
Avatar billede MSR Juniormester
30. januar 2011 - 20:18 #5
aarh det var forkert. men resten virkede... rettede du ikke bare til temp_name? Det var den faktisk også tidligere men da var den selektiv i hvilke filer den gad tage imod.

Tak jeg tror sgu det hele virker nu.
tester det lige og smider så nogle points

Magnus
Avatar billede rix Novice
30. januar 2011 - 20:40 #6
hehe jo det gjorde jeg :D
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