Avatar billede tobrukDk Novice
02. april 2012 - 16:42 Der er 1 kommentar og
1 løsning

unik navn til billedet

Hej


Jeg opret et spørgsmål igen da jeg komme til at lukke http://www.eksperten.dk/spm/960514#reply_7928398

alt for hurtigt. :)


<?php
            if(!empty($_POST))
            {
                $tekst = mysql_real_escape_string($_POST["tekst"]);
                $bruger_id = $_SESSION['user_id'];
               
                $billedefilnavn = null;
 
                    include("include/class.upload.php");
                        $handle = new Upload($_FILES['file']);
                       
                             
                        if($handle->uploaded){
                                //lidt mere store billeder
                                $handle->image_resize = true;
                                $handle->image_ratio_y = true;
                                $handle->image_x = 220;
                                $handle->Process("gallery/big_img");
                                    //til profil billede lign..
                                    $handle->image_resize = true;
                                    $handle->image_ratio_crop = true;
                                    $handle->image_y = 75;
                                    $handle->image_x = 75;
                                    $handle->Process("gallery");               
                            $billedefilnavn = $handle->file_dst_name;
                           
                            $_FILES["name"] = $billedefilnavn;

                            $ext = array_pop(explode(".",$_FILES['file']['name']));

                            $uniktNavn = md5(microtime());

                            $filnavn = $uniktNavn."_djinfo.".$ext;
                           
                                echo '<p>Billedet: '.$filnavn.'<br></p>';
                                echo "<p>Dit billede blev upload<br></p>";
                         
                        }                   
                    if(empty($errors))
                    {
                        $insert = mysql_query("INSERT INTO gallery (tekst,billedefilnavn,bruger_id)
                        VALUES ('$tekst','$filnavn','$bruger_id')");
                       
                        if(!$insert)
                        {
                            echo "Fejl".mysql_error()."her";
                        }
                        else
                        {
                            echo "Godkendt";
                        }
                    }
                }
            ?>
                <form action="" method="post" enctype="multipart/form-data">
                    <input type="text" name="tekst" placeholder="Tekst" style="margin:5px; width:370px;">
                    <input type="file" name="file"><br>
                    <input type="submit" value="Upload">
                </form>



og det er sådan at den bare ligge ind i mappen med sit normal navn og hvis der er 2 så hedder den herher_2.jpg f.eks. :)


men den gider heller ikke ligge sig op i databasen og mappen altså når den bliver lavet om til det unik navn.


Kommer frem med en fejl her;

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\ny\bruger_gallery_upload.php on line 58


$ext = array_pop(explode(".",$_FILES['file']['name']));

det er her fejl er på koden :)

Det kan godt være at jeg lige kommer på mere men kan ikke lige husk det lige nu :) Håber det er okay :D
Avatar billede tobrukDk Novice
02. april 2012 - 18:12 #1
har drop det og valgt at gør sådan her ;


<?php
            if(!empty($_POST))
            {
                $tekst = mysql_real_escape_string($_POST["tekst"]);
                $bruger_id = $_SESSION['user_id'];
             
                $billedefilnavn = null;
                           
                        if($handle->uploaded){
                                //lidt mere store billeder
                                $handle->image_resize = true;
                                $handle->image_ratio_y = true;
                                $handle->image_x = 220;
                                $handle->Process("gallery/big_img");
                                    //til profil billede lign..
                                    $handle->image_resize = true;
                                    $handle->image_ratio_crop = true;
                                    $handle->image_y = 75;
                                    $handle->image_x = 75;
                                    $handle->Process("gallery");             
                            $billedefilnavn = $handle->file_dst_name;
                            //unik billede navn/tal her!!                                           
                                echo '<p>Billedet: '.$filnavn.'<br></p>';
                                echo "<p>Dit billede blev upload<br></p>";
                        }
                }       
                    if(empty($errors))
                    {
                        $insert = mysql_query("INSERT INTO gallery (tekst,billedefilnavn,bruger_id)
                        VALUES ('$tekst','$filnavn','$bruger_id')");
                     
                        if(!$insert)
                        {
                            echo "Fejl".mysql_error()."her";
                        }
                        else
                        {
                            echo "Godkendt";
                        }
                    }
                }
            ?>
Avatar billede micma18_ Nybegynder
03. april 2012 - 09:07 #2
Det er vel ikke så svært at lave et unik navn...?

eks. $filnavn = '$bruger_id'.time();

Du kan ikke have to ens userids, inden for det samme sekund. Og hvad er risikoen for at den samme bruger uploader 2 billeder, indenfor 1 sekund. Eventuelt supplerer med en "if file_exists"
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