Avatar billede horizon Nybegynder
30. november 2005 - 02:45 Der er 1 kommentar og
1 løsning

"Upload billede" problem

Jeg har nærstuderet alle artiklerne i php angående billedupload, men jeg støder ind i et irriterende problem:

Den vil for det første ikke uploade billedet. eller overføre information fra $_FILES til andre variabler

Som I kan se har jeg prøvet at se hvor fejlen opstår og se om jeg kan rette det den vej, men det funker ikke helt som det skal. Det output jeg får når jeg uploader et tilfældigt billede ser sådanher ud:

tmp_name:/usr/tmp/phpoSTcZa
name:paysages_fantas_37.jpg
type:image/pjpeg
size:84974
error:0
(tom)
bannerfil:
filendelse:
filtyper:
bannersti:
brugerid:243
Warning: chmod(): No such file or directory in /mnt/dkcphnas004/www/t/y/xxxxxxxxxx.dk/PHP/Diverse.php on line 152

Desuden så mangler jeg et script som kan resize billederne hvis de er over 468 x 60 px. Jeg har læst diverse guider igennem, uden held. Hver gang sidder jeg bagefter og tænker "okay... WHAT?!" hvis der er nogen som ville være så hjælpsom og skrive et script (helst kommenteret så jeg har en chance for at lære det på en eller anden måde) eller på anden måde hjælpe mig vil jeg sætte pris på det.


Her er hele koden som håndterer uploadningen:

//Upload banner
        elseif(isset($_POST[UploadBanner])){
            $_SESSION[Banner][URL] = $_POST[URL];
            $_SESSION[Banner][Titel] = $_POST[Titel];
            $_SESSION[Banner][Beskrivelse] = $_POST[Beskrivelse];
           
            if(empty($_POST[URL]))
                $fejl[] = 'Du skal angive en adresse til din side';
            if(empty($_POST[Titel]))
                $fejl[] = 'Du skal give din side et navn';
            if(empty($_POST[Beskrivelse]))
                $fejl[] = 'Du har ikke skrevet en beskrivelse om siden';
            elseif(strlen($_POST[Beskrivelse]) < 100)
                $fejl[] = 'Din beskrivelse skal være på mindst 100 tegn';
           
            $MaksHoejde = 60;
            $MaksBredde = 468;
           
            function UploadBanner1(){
           
                $BannerFil=$_FILES[BannerLink][tmp_name];
               
                $FilEndelse=strrchr($_FILES[BannerLink][name],'.');
                $FilEndelse=strtolower($FilEndelse);
               
                $FilTyper=array('.gif','.jpg','.png');
               
                $BannerSti='../Billeder/Banner/Banner_'.$_SESSION[Profil][BrugerID].$FilEndelse;
               
                if(in_array($FilEndelse,$FilTyper)){
               
                    function UploadBanner2(){
               
                        $MaksHoejde = 60;
                        $MaksBredde = 468;
                        $Visninger = 500;
                       
                        /*resize her hvis det er for stort*/
                       
                        move_uploaded_file($BannerFil, $BannerSti);
                       
                        echo '
                        tmp_name:<b>'.$_FILES[BannerLink][tmp_name].'</b><br>
                        name:<b>'.$_FILES[BannerLink][name].'</b><br>
                        type:<b>'.$_FILES[BannerLink][type].'</b><br>
                        size:<b>'.$_FILES[BannerLink][size].'</b><br>
                        error:<b>'.$_FILES[BannerLink][error].'</b><br>(tom)<br>';
                        echo '
                        bannerfil:<b>'.$BannerFil.'</b><br>
                        filendelse:<b>'.$FilEndelse.'</b><br>
                        filtyper:<b>'.$FilTyper.'</b><br>
                        bannersti:<b>'.$BannerSti.'</b><br>
                        brugerid:<b>'.$_SESSION[Profil][BrugerID].'</b>';
                       
                        chmod($BannerSti, 0644);
                       
                        $iBanner = '
                            INSERT INTO
                                `Bannere_Data`
                                (`BrugerID`,
                                `Visninger`,
                                `Titel`,
                                `URL` ,
                                `Beskrivelse`)
                            VALUES(
                                '.$_SESSION[Profil][BrugerID].',
                                '.$Visninger.',
                                '.$_SESSION[Banner][Titel].',
                                '.$_SESSION[Banner][URL].',
                                '.$_SESSION[Banner][Beskrivelse].')';
                       
                        unset($_SESSION[Banner]);
                       
                        ?>
                        <!--<script>
                            location.href='../Sider/Side.php?SideID=8';
                        </script>-->
                        <?php
                    }
               
                }else
                    $fejl[] = 'De tilladte filtyper er GIF, JPG og PNG';
                   
                if(count($fejl) > 0)
                    Diverse_Fejl($fejl);
                else
                    UploadBanner2();
           
            }
           
            if(count($fejl) > 0)
                Diverse_Fejl($fejl);
            else
                UploadBanner1();
       
        }

Her er formen som sparker det hele afsted:
<form id="BannerOrdning" action="../PHP/Diverse.php" method="post" name="BannerOrdning" enctype="multipart/form-data">
                                                <p><b>B</b>anner:<br>
                                                    <b><input type="file" name="BannerLink" size="64" tabindex="1" accesskey="B"></b></p>
                                                <p><b>A</b>dresse/URL til siden:<br>
                                                    <input type="text" name="URL" value="<?php echo $_SESSION['Banner']['URL']; ?>" size="82" tabindex="2" accesskey="A"></p>
                                                <p><b>N</b>avn p&aring; siden:<br>
                                                    <input type="text" name="Titel" value="<?php echo $_SESSION['Banner']['Titel']; ?>" size="82" tabindex="3" accesskey="N"></p>
                                                <p>B<b>e</b>skrivelse af siden:<br>
                                                    <textarea name="Beskrivelse" rows="10" cols="80" tabindex="4" accesskey="E"><?php echo $_SESSION['Banner']['Beskrivelse']; ?></textarea><br>
                                                    <span class="smalltext">Min 100; tegn endnu: <span id="signatureLeft">100</span></span>

                                                    <script language="JavaScript" type="text/javascript"><!--
                                        function tick()
                                        {
                                            if (typeof(document.BannerOrdning) != "undefined")
                                                calcCharLeft();
                                            setTimeout("tick()", 1000);
                                        }

                                        function calcCharLeft()
                                        {
                                            var minLength = 100;
                                            var oldSignature = "", currentSignature = document.BannerOrdning.Beskrivelse.value;

                                            if (!document.getElementById("signatureLeft"))
                                                return;

                                            if (oldSignature != currentSignature)
                                            {
                                                oldSignature = currentSignature;

                                                if (currentSignature.replace(/\r/, "").length < minLength)
                                                    document.BannerOrdning.Beskrivelse.value = currentSignature.replace(/\r/, "").substring(0, minLength);
                                                currentSignature = document.BannerOrdning.Beskrivelse.value.replace(/\r/, "");
                                            }

                                            setInnerHTML(document.getElementById("signatureLeft"), minLength - currentSignature.length);
                                        }

                                        setTimeout("tick()", 1000);
                                    //
//-->
</script>
                                                </p>
                                                <input type="submit" name="UploadBanner" value="Upload Banner" tabindex="5" accesskey="S"><br>
                                                <div class="Genvej">
                                                    [Alt] + [S]</div>
                                            </form>
Avatar billede horizon Nybegynder
30. november 2005 - 15:15 #1
fik selv upload delen til at virke, havde glemt nogle tegn hist og her, men mangler fortsat et resize script hvis nogen ligger inde med det... ;)
Avatar billede horizon Nybegynder
30. november 2005 - 22:40 #2
fandt en alternativ måde
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