Avatar billede kklm Nybegynder
01. oktober 2006 - 00:49 Der er 1 kommentar og
1 løsning

Script der kan uploade billeder

Hej eksperter

Jeg står i den situation at jeg har brug for et php-script der kan uploade et eller flere billeder til en mappe på serveren. Det har jeg også fundet et script der kan gøre og det tyder også på at det virker.

http://www.showsource.dk/php/vis_script.php?id=1064975823

MEN jeg har brug for at integrere en yderligere del til dette script, nemlig at brugeren der uploader billederne selv kan lægge det i en bestemt mappe i den mappe som jeg har angivet. Dvs. at hvis en bruger ønsker at oprette en mappe der hedder "feriebilleder_2005" inde i den mappe som jeg på forhånd har valgt, så kan han eller hun oprette denne og uploade samtlige billeder han eller hun ønsker.
Samtidig er der nødt til at være et sikkerhedstjek så der ikke kan oprettes en ny mappe med samme navn som en tidligere mappe (for at forhindre at en gammel mappe overskrives og billederne slettes)

Da jeg ikke aner en daddel omkring php-kodning er jeg nødt til at spørge en eller flere af jer om i har mulighed for at kode en sådan feature ind i den kode som der allerede eksisterer i det overnnævnte script.

For nemhedens skyld har jeg nedenfor copy/pasted koden, til de to filer det drejer sig om,:

upload.php
-----------------------------------------------------------------
<html><head><title>Upload resultat</title>
<link rel="stylesheet" type="text/css" href="upload.css">
</head>
<body>

<center>

<table><tr>
<td><?php

//hmm, lidt kode til "rigtig lukning" af html'en ved fejl
$stop = "</td>\n</tr></table>\n</center></body></html>";

//stien, hvortil filer skal uploades, her et subdir til roden af domænet   
$dist = $_SERVER["DOCUMENT_ROOT"] ."/upload/";

//Er det en enkelt fil? (singlefile)
if(isset($_FILES["singlefile"])) {

//til brug for info om filtyper
$str1 = $_FILES["singlefile"]["name"];
$str2 = $_FILES["singlefile"]["size"];
$str3 = $_FILES["singlefile"]["type"];


//Filer som kan uploades
$filetyper = array("image/gif", "image/jpeg", "image/pjpeg", "image/png", "image/x-png");

//Tjek om der er en fil
    if ($_FILES["singlefile"]["name"] == "") {
echo"Ingen fil valgt! <a href=\"uploadform.php\">tilbage</a>";
echo $stop;
exit;
    }

//Tjek om filen er i array'et af tiladte filtyper
    if (!in_array($_FILES["singlefile"]["type"], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>". $str3 ."</b> er ikke tilladt for upload! <a

href=\"uploadform.php\">tilbage</a>";
echo $stop;
exit;
    }


        //se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"   

   
        if(is_uploaded_file($_FILES["singlefile"]["tmp_name"])) {

    //Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din

server :O)
    move_uploaded_file($_FILES["singlefile"]["tmp_name"], $dist . $_FILES["singlefile"]["name"]);

    echo"&Oslash;nsket fil til upload:<p>\n";
    echo "<b>Navn:</b> ". $str1 .",<br>\n";
    echo"<b>St&oslash;rrelse:</b> ". $str2 ." bytes,<br>\n";
    echo"<b>Filtype:</b> ". $str3 ."<br>\n";
    echo "<a href=\"uploadform.php\">tilbage</a>";

        }else{
        echo"Sorry, men upload skete IKKE!";
    }

}

//FLERE FILER PÅ SAMME TID FLERE FILER PÅ SAMME TID

if (isset($_FILES["upfile"])) {

echo"&Oslash;nskede filer til upload:<p>\n";

$antal = 0;

//Find antallet af filer til upload med en for-løkke
for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) {

    if ($_FILES["upfile"]["name"][$i] !="") {
    //Læg en til $antal for hver fil.
    $antal++;
        if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) {

    move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i]);

    //til brug for info om filtyper
    $str1 = $_FILES["upfile"]["name"][$i];
    $str2 = $_FILES["upfile"]["size"][$i];
    $str3 = $_FILES["upfile"]["type"][$i];

    echo "<b>Navn:</b> ". $str1 .", <b> st&oslash;rrelse:</b> ". $str2 ." bytes, <b>filtype:</b> ".

$str3 ."<br>\n";

        }else{

    echo"Upload til serveren skete ikke!";

            }
        }
    }

if($antal < 1) { //Hvis der ingen filer er valgt
echo"V&aelig;lg en eller flere filer til upload! <a href=\"uploadform.php\">tilbage</a>";
    }else{
echo"<a href=\"uploadform.php\">tilbage</a>";
    }

}
?></td>

</tr></table>

</center>

</body></html>
-----------------------------------------------------------------


uploadform.php
-----------------------------------------------------------------
<html><head><title>Upload af en eller flere filer</title>
<link rel="stylesheet" type="text/css" href="upload.css">
</head>
<body>
<center>
<?php
if(ini_get("file_uploads") == 1) { //Tak til detox for at lære mig lidt om ini_get(), http://www.eksperten.dk/spm/392653
?>
<form enctype="multipart/form-data" action="upload.php" method="post">
<b>Max. upload p&aring; en gang er sat til <?php echo min(ini_get("post_max_size"), ini_get("upload_max_filesize")); ?>b. i php.ini</b><br><br>
<table><tr>

    <td>V&aelig;lg en fil til upload.<br>
<input name="singlefile" type="file" class="input" size="40"> <input type="submit" value="Upload" class="submit">
<br>
Filer som accepteres:<br>
"image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "image/x-png"</form></td>

</tr><tr>

    <td><hr><b>Flere filer p&aring; samme tid:</b></td>

</tr><tr>

    <td><form enctype="multipart/form-data" action="upload.php" method="post">
V&aelig;lg en eller flere filer til upload:<br>
<input name="upfile[]" type="file" size="48" class="input"><br>
<input name="upfile[]" type="file" size="48" class="input"><br>
<input name="upfile[]" type="file" size="48" class="input"><br>
<input name="upfile[]" type="file" size="48" class="input"><br>
<input name="upfile[]" type="file" size="48" class="input"><p>
<center><input type="submit" value="Upload" class="submit"></center><p>
Alle filtyper accepteres ved "multi-upload".</td>

</tr></table>

</form><?php
}else{
echo"Tilsyneladende er filupload ikke tilladt på denne server?<br>\n";
echo"Pr&oslash;v evt. at fjerne den f&oslash;rste if-s&aelig;tning i denne fil.";
}
?>
</center>

</body></html>
-----------------------------------------------------------------

Desuden kunne jeg godt tænke mig at vide hvordan jeg skal angive den mappe som jeg ønsker at filerne skal uploades i?
Er det fulde sti på serveren eller er det bare noget i retningen af "./Mappen/" - eller noget?

Takker på forhånd for hjælpen
Mvh.
Lasse Andersen
Avatar billede kklm Nybegynder
03. oktober 2006 - 12:46 #1
Er det virkelig rigtig at ingen kan finde ud af det her?? :D
Avatar billede kklm Nybegynder
04. oktober 2006 - 22:38 #2
Jeg kunne nu godt nok bruge et svar - så nu lukker vi da bare :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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