Avatar billede flashnoob Nybegynder
03. oktober 2005 - 07:37 Der er 5 kommentarer

Ang. Sukos' multiupload - andre navne på billeder

Jeg bruger Sukos' fremragende multiupload-script ( http://www.showsource.dk/php/vis_script.php?id=1064975823 )
Det virker som det skal. Jeg vil bare gerne have at filerne skal få tildelt deres egne navne.
Første upload i formen, skal gerne hedde noget i stil med thumb_categori_nummer_mitprojektnavn.gif (categori, nummer og mitprojektnavn, skal sættes alt efter ($_POST[categori], $_POST[nummer], $_POST[mitprojektnavn])

De andre skal gerne få tildelt:
categori_nummer_mitprojektnavn.jpg

Hvordan gør jeg det?

==== UPLOAD FORM ====
<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".
</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.";
}
?>

==== UPLOADSCRIPT (upload.php)====

$dist = $_SERVER["DOCUMENT_ROOT"] ."/***/web/projects"; // HER SKAL ÆNDRES VED UPLOAD
                               
                                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"Hov.. du skal lige vælge nogen billeder at uploade :) <a href=\"uploadform.php\">tilbage</a>";
                                    }else{
                                echo"<a href=\"uploadform.php\">tilbage</a>";
                                    }
                               
                                }
Avatar billede krydset Nybegynder
03. oktober 2005 - 07:45 #1
i denne her

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


kan du ændre det til eks.

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


prøv det engang, ellers kan du jo bare selv rykke rundt på variablerne
Avatar billede el_morten Nybegynder
03. oktober 2005 - 08:29 #2
Okay. Nu er jeg lige på arbejde og sidder ikke med projektet, så kan ikke afprøve det før engang i aften .
Men umiddelbart, vil filen så ikke beholde sit eget navn i enden, $_FILES["upfile"]["name"] i din løsning? Ikke fordi det gør noget :)
Avatar billede krydset Nybegynder
03. oktober 2005 - 11:24 #3
noget ala det her


$dist = $_SERVER["DOCUMENT_ROOT"] ."/***/web/projects"; // HER SKAL ÆNDRES VED UPLOAD
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])) {
              //Sætter her filnavn
                $fileName = $dist . $_FILES["upfile"]["name"][$i];
                //finder her fil extension
                $path_parts = pathinfo('$_FILES["upfile"]["name"][$i]');
                $ext = $path_parts['extension'];
                //Flytter her den uploadede fil i det givne dir
                move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $fileName);
                //Rename her filen til dit nye fil navn
                $newFileName = $_POST["categori"]. $_POST["nummer"] . $_POST["mitprojektnavn"].['$i'].".".$ext
                rename($filename, )
                //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"Hov.. du skal lige vælge nogen billeder at uploade :) <a href=\"uploadform.php\">tilbage</a>";
    }else{
        echo"<a href=\"uploadform.php\">tilbage</a>";
    }
}
Avatar billede flashnoob Nybegynder
03. oktober 2005 - 20:21 #4
Hmm... jeg får en fejl:
"parse error in c:\appserv\www\liseportfolio\web\admin\new_project.php on line 153"
Det er denne linie: $newFileName = $_POST["categori"]. $_POST["nummer"] . $_POST["mitprojektnavn"].['$i'].".".$ext
Avatar billede krydset Nybegynder
03. oktober 2005 - 21:32 #5
mangler der ikke osse en ; i den :-P

$newFileName = $_POST["categori"]. $_POST["nummer"] . $_POST["mitprojektnavn"].['$i'].".".$ext;
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