Avatar billede roz Nybegynder
29. januar 2006 - 21:02 Der er 3 kommentarer og
1 løsning

While løkke der ikke hlt gør hvad den skal :S

hey...

Har et problem med den følgende kode:

$imagename = "".$name."1.jpg";
        $j=1;

        while (file_exists("../profileimages/".$imagename.".jpg"))
            {
            $j++;
            $imagename = "".$name.$j.".jpg";
            }

Den skulle gerne tjekke efter hvilke navne de allerede eksisterende billeder har og derved sørge for at det nye billede jeg uploader får et unikt navn. Problemet er den lader $imagename indehold eingenting og jeg kan ikke helt se hvad fejlen skulle være.
Så håber der er nogen der kan hjælpe :P
Avatar billede Slettet bruger
29. januar 2006 - 21:07 #1
problemet er vel at den ikke finder nogen filer med navnet .jpg.jpg

Du definerer en variabel med et billedenavn (foo1.jpg) og du har også endelsen på i din løkke.

while (file_exists("../profileimages/".$imagename.""))
Avatar billede Slettet bruger
29. januar 2006 - 21:12 #2
Jeg kan dog ikke lide din metode for at finde et unikt navn.
Forestil dig når der ligger 1.000 filer. Så skal den altså først igennem en løkke 1.000 gange.

Du må jo alligevel gemme information omkring filnavnet i en database eller ligende.
Derfor kunne du jo ud fra tidspunktet og rand() funktionen skabe et unikt filnavn.

$imagename "".date(dmYHis)."".rand(1, 1000000).".jpg";

Men det er jo blot min mening :)
Avatar billede roz Nybegynder
29. januar 2006 - 23:10 #3
Det er ikke meningen den skal bruges på den måde.. Det er meningen der skal 3-4 billeder med hver sit forskellige navn, det jeg har gemt i variablen $name og så blot et tal bagefter så der kan ligge flere med samme "hovednavn".

Og til det ville jeg mene denne kode skulle virke. Men det gør den bare ikke :S
Avatar billede Slettet bruger
29. januar 2006 - 23:31 #4
Okay, så er det jo intet problem.
Som jeg skrev i min første kommentar er det pga dobbelt fil-endelse.

Dette virker fint for mig :)

<?php
    $imagename = "".$name."1.jpg";

        $j=1;
        while (file_exists("../profileimages/".$imagename)) {
        $j++;
                $imagename = "".$name.$j.".jpg";
        }
    echo $j;
?>

Der bliver i ovenstående udskrevet 3 hvis der ligger 2 filer i mappen.
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel