Avatar billede spidr Nybegynder
02. august 2005 - 23:10 Der er 9 kommentarer og
1 løsning

Give nyt navn til uploadet billed

Jeg er ved at lave en side hvor man selv kan uploade et billed og skrive en lille tekst til det.

Det jeg gerne vil lave, men som jeg ikke lige kan finde på en måde til, er så billedet man uploader bliver omdøbt til id'en på den SQL tråd man laver imens man uploader billedet.

Altså man kommer ind på opret billed siden og så skal man først vælge billedet der skal uploades, f.eks. med en:
<input name=upfile[] type=file class=input>
og så i samme formel skal man skrive en lille tekst om billedet og en overskrift, og så trykke next, og så skal billedet uploades og omdøbes til id'en på den tråd man laver, sådan at når man skal hente billedet igen så skriver man bare id'en..

hvis nogen har en nemmere måde at sørge for folk ikke kalder billedet noget mærkeligt der kludre det hele op, så er jeg også frisk på det.
Avatar billede jaw Nybegynder
02. august 2005 - 23:18 #1
Kan du selv klare selve uploaden?

Så når du til f.eks. move_uploadet_file($_FILES['upfile']['tmp_name'], $_FILES['upfile']['name']);

Så vil du kunne lave noget a'la:
//indsæt i database med
//udhent id'et - f.eks. med mysql_insert_id();
move_uploadet_file($_FILES['upfile']['tmp_name'], $id_variabel);

Nok med lidt mere tilpasning, men hvis du er frisk på en lang nat, så leg lidt med det :) Jeg kan desværre ikke hjælpe mere i dag, bliver nødt til at smutte i køjen...
Avatar billede spidr Nybegynder
02. august 2005 - 23:22 #2
ja det var også lidt sent, jeg vil lege lidt med det, tak for det.
Avatar billede krydset Nybegynder
02. august 2005 - 23:27 #3
har lige skrevet det for nogle dage siden det kan du da bruge og lege lidt med
kan osse sige at "mysql_insert_id --  Modtager det ID, der sidst blev genereret af en INSERT forespørgsel" det kan du så bruge til at rette din database til

Sprørg hvis der er noget du ikke forstår
<?php
//Hvis bruger trykker på upload button
if(isset($_POST['uploadbtn'])) {
   
    //Tæl hvormange fil felter der bliver submitted
    $antal = count($_FILES['upfil']['name'])."<br>";
   
    //Upload dir
    $uploaddir = "c:/upload/";
   
    //Sæt filernes max størrelse i byte
    $maxfilesize = 1000000;
   
    //Her sættes tilladte filtyper
    $allowedfiles = array("jpg", "jpeg", "gif", "bmp", "tif", "png");
   
    //Kør det i en for løkke det antal gange der er fil felter
    for ($x=0; $x<$antal; $x++) {
       
        //find de tomme form felter, Her skal der intes gøre andet end måske skive en fejlkode ud
        if(empty($_FILES['upfil']['name'][$x])) {
           
            //Evt udskrives fejl her
            echo "fil nr $x er tom her skal der ikke gøres noget<br>";
           
        } else {           
           
            //Her sættes lidt variabler man kan bruge i scriptet
           
            //Det orginale filnavn
            $filnavn = $_FILES['upfil']['name'][$x];
           
            //Den orginale filstørrelse i byte
            $filsize = $_FILES['upfil']['size'][$x];
           
            //Den orginale mime filtype
            $filtype = $_FILES['upfil']['type'][$x];
           
            //Det tmp navn php giver filen
            $tmpname = $_FILES['upfil']['tmp_name'][$x];
           
            //Fil extension bruges til at tjekke om filtype er tilladt
            $ext = pathinfo($filnavn);
            $ext = strtolower($ext['extension']);
                       
            //Her testes om filens størrelse overskrider $maxsize
            if($filsize > $maxfilesize) {
                //Her udskrives en fejl besked hvis filen er for stor
                echo "fil nr <b>$x ".$filnavn."</b> Er for stor den. filen er på: ".$filsize." byte og max størrelse er på: ".$maxfilesize ."<br>";
            } else {
               
                //Her testes om filtype er tilladt
                if(!in_array($ext, $allowedfiles)) {
                   
                    //Her udskrives en fejl meddelse hvis ikke filtype er tilladt
                    echo "Filtype: <b>.".$ext."</b> Er ikke tilladt<br>";
                   
                } else {
                   
                    //Upload file
                    //Finder random filnavn til filen
                    $newfilename = md5(rand(0, 99999)).$filnavn;
           
                    //rykker uploadet fil til uploaddir
                    move_uploaded_file($tmpname, $uploaddir.$newfilename);
           
                    //Udskriver lidt info om filen       
                    echo "fil nr: $x & Filnavn er " .$filnavn. " filtype er ". $filtype ." Filstørrelse er ".$filsize. "Bytes.  Det nye filnavn på fil er $newfilename<br>";
                }
            }
        }
    }
} else {
   
    echo "Du skal trykke på knappen";
}
?>

<form action="fil.php" method="POST" enctype="multipart/form-data">
<?php
//Her sættes antal filfelter der skal være i formen
$antalfiler = 50;
$i = 0;
for($i=0; $i<$antalfiler; $i++) {
    ?>
    <input type="file" name="upfil[]"><br>
    <?
}
?>
<input type="submit" name="uploadbtn" value="Upload">
</form>
Avatar billede spidr Nybegynder
03. august 2005 - 00:22 #4
Jep så fik jeg det sørme til at virke, tusind tak krydset.
Avatar billede krydset Nybegynder
03. august 2005 - 00:39 #5
velbekomme :-D
Avatar billede the_zyx Nybegynder
14. januar 2006 - 23:02 #6
Jeg kan ikke få den til at uploade, den skriver alle oplysningerne ud, men filen befinder sig ikke på serveren. Skal det være en bestemt sti jeg skal skrive?

    $uploaddir = "http://";

??
Avatar billede the_zyx Nybegynder
14. januar 2006 - 23:03 #7
håber det er okay at spørge selvom spørgsmålet er besvaret :)
Avatar billede spidr Nybegynder
15. januar 2006 - 01:03 #8
Nej du skal skrive stien på serveren.

hvis du har den ude i byen som mig er den sikkert noget alla; /hsphere/local/home/winta/lovehina.dk/

(det er stien jeg bruger, det er til mit domæne lovehina.dk der ligger på en surftown server)

det er også vigtigt at du giver skrive rettighedder til mappen.
Avatar billede the_zyx Nybegynder
15. januar 2006 - 02:39 #9
det er mit domæne også, og nu virker det.. loggede på my.surftown og fandt stien..
tak og gooodnat!
Avatar billede spidr Nybegynder
15. januar 2006 - 10:38 #10
Det var da så lidt :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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