Avatar billede kujuk Nybegynder
27. maj 2004 - 12:22 Der er 9 kommentarer og
2 løsninger

Upload af billeder

Jeg har hentet nedenstående uploadscripts, men kan ikke få det til at virke, (jeg er også meget blank på området, så I må meget gerne skære det ud i pap) ;-)

Jeg har ikke indtastet nogen password el.ling., hvilket ellers ville være helt naturligt, men hvor er det lige det evt. skal gøres.

Der er 3 stk. koder:

1/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", "text/html", "text/plain", "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>





2/upload.css

body {font-family: arial; font-size: 0.8em; margin: 2.0em; background-color: white; color: black;}
td, th {font-family: arial; font-size: 0.8em; color: black;}

.input {color:black; background-color: #ffffff; font-family: arial; font-size: 0.8em; border-color: black; border-width: 1px;}
.submit {font-family: arial; font-size: 0.8em;}





3/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 mi glidt 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>
Avatar billede dennismp Nybegynder
27. maj 2004 - 12:38 #1
"Virker ikke" ... Kan du være lidt mere præcis?
Avatar billede kujuk Nybegynder
27. maj 2004 - 13:13 #2
Ja selvfølgelig.

Fejlteksten lyder:

Warning: move_uploaded_file(/home/web/sth7417/upload/blomst.JPG): failed to open stream: No such file or directory in /home/web/sth7417/foto/upload.php on line 48

Warning: move_uploaded_file(): Unable to move '/var/tmp/phpBrd9Tf' to '/home/web/sth7417/upload/blomst.JPG' in /home/web/sth7417/foto/upload.php on line 48
Ønsket fil til upload:
Navn: blomst.JPG,
Størrelse: 38251 bytes,
Filtype: image/pjpeg
tilbage
Avatar billede michael_stim Ekspert
27. maj 2004 - 13:17 #3
Det er stien der er forkert!
Du har selvfölgelig en mappe der hedder upload?
Avatar billede kujuk Nybegynder
27. maj 2004 - 13:17 #4
Linie 48 ses at være i følgende tekst i upload.php filen:

//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"]);


Men hvordan skal den ændres til at passe til min server, skal det f.eks. være noget ftp://mit-domæin.dk
Avatar billede dennismp Nybegynder
27. maj 2004 - 13:21 #5
Det kommer an på hvordan din server er sat op. Hvis du logger dig ind med ftp, så bør du kunne se en "upload" mappe.. Kan du det? Hvis du ikke kan.. så opret een
Avatar billede michael_stim Ekspert
27. maj 2004 - 13:21 #6
Pröv at stille dig i mappen upload og skriv flg:
echo "<html>" . $_SERVER["PATH_TRANSLATED"] . "<br></html>";
i en php-fil og se hvad stien siger.
Avatar billede kujuk Nybegynder
27. maj 2004 - 13:24 #7
Okie-dokie, nu er den der sørme.

Jeg havde en fil som hed upload, men ingen mappe med det navn.

Tak for hjælpen.
Avatar billede dennismp Nybegynder
27. maj 2004 - 13:34 #8
Det kan være du skal retter permissions (med chmod) hvis du får problemer med permissions (du skal nok give gruppe eller alle write-adgang.. ) ..

Det afhænger meget af hvordan din server er sat op, så det kan være det slet ikke er et problem :)
Avatar billede kujuk Nybegynder
27. maj 2004 - 14:10 #9
>michael_stim

er du interesseret i point, så smid et svar !
Avatar billede michael_stim Ekspert
27. maj 2004 - 14:31 #10
Värsgo ;o)
Avatar billede michael_stim Ekspert
27. maj 2004 - 14:32 #11
Ups.
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