Avatar billede -kenner- Nybegynder
10. juli 2006 - 12:24 Der er 6 kommentarer og
2 løsninger

Fil upload, skla gemme filen med unikt ID.

Hej eksperter,

Jeg har lavet et script der uploader hvilkesom helts filer, men hvordan kan jeg få den til at hente fil-efternavnet, så jeg ikke selv skal angive net, når jeg giver en rename()?

Som det står lige nu kommer de jo alle tila t hedde $id.jpg ..

Source:


define( 'MAPPE', 'filer/' );

if(isset($_POST['tilfoej']))
{
    $Titel = $_POSt['Titel'];
    if(is_uploaded_file($_FILES['fil']['tmp_name']))
    {
        $tmpfile = MAPPE . md5(uniqid(rand(), true));

        move_uploaded_file( $_FILES['fil']['tmp_name'], MAPPE . $tmpfile );
                          $unik = unik_traad();
                  mysql_query("insert into ejendomme (Unik, Titel, Beskrivelse, Status, Vej, Postnummer, Byen) values ('".$unik."', '".$_POST['Titel']."', '".$_POST['Beskrivelse']."', '".$_POST['Status']."', '".$_POST['Vej']."', '".$_POST['Postnummer']."', '".$_POST['Byen']."')") or die(mysql_error());
                  $result = mysql_query("select * from ejendomme where Unik = '$unik'") or die(mysql_error());
                $row = mysql_fetch_array($result);
              $id = $row['ID'];
              rename( $tmpimg, MAPPE . $id . '.jpg' );
            }
       
    }
}else{
    $Titel = "";
    }
    echo"<br><form name=\"login\" method=\"post\" action=\"index.php?side=Admin&p=TilfoejFil&ID=".$_GET['ID']."\" enctype=\"multipart/form-data\">
                    <table class=\"tekst\" border=\"0\"><tr><td>Titel:</td><td><input type=\"text\" name=\"Titel\" value=\"$Titel\" style=\"width:175px\"></td></tr>
                    <tr><td>Fil:</td><td><input type=\"file\" name=\"fil\" style=\"width:295px\"></td></tr>
                    <tr><td></td><td align=\"left\"><input type=\"submit\" name=\"tilfoej\" value=\"Tilføj\"></td></tr></table></form>";
Avatar billede repox Seniormester
10. juli 2006 - 12:38 #1
Ved ikke om den er helt fejlfri, men prøv:

$type = str_replace('.','',strstr($_FILES['fil']['name'], '.'));
rename($tmpimg, MAPPE . $id . '.' . $type );
Avatar billede gizmo-gizmo Nybegynder
10. juli 2006 - 12:42 #2
Du kan få fat i filens endelse med:
$extension = substr(strrchr($_FILES['fil']['name'], '.'), 1);

og så bruge $extension i stedet for .jpg
Avatar billede showsource Seniormester
10. juli 2006 - 17:55 #3
eller pathinfo()

$ext = pathinfo($_FILES["fil"]["name"]);
$filtype = $ext["extension"];
Avatar billede -kenner- Nybegynder
10. juli 2006 - 21:12 #4
gizmo-gizmo > Du brugte jeg din version, og filen bliver ikke uploaded? hvorfor?

Det er ikke nødvendig vis din skyld, men gider i ikke at kigge koden igennem, jeg har sat chmode til 666 på mappen filer, så jeg forstår det ikke.
Avatar billede -kenner- Nybegynder
10. juli 2006 - 21:13 #5
her er min source:

define( 'MAPPE', 'filer/' );

if(isset($_POST['tilfoej']))
{
    $Titel = $_POST['Titel'];
    if(is_uploaded_file($_FILES['fil']['tmp_name']))
    {
        $tmpfile = MAPPE . md5(uniqid(rand(), true));

        if(move_uploaded_file( $_FILES['fil']['tmp_name'], MAPPE . $tmpfile )){
        $extension = ".".substr(strrchr($_FILES['fil']['name'], '.'), 1);
                          $unik = unik_traad();
                  mysql_query("insert into filer (Unik, Titel, Ejendom_ID, Fil_Efternavn) values ('".$unik."', '".$_POST['Titel']."', '".$_GET['ID']."', '".$extension."')") or die(mysql_error());
                  $result = mysql_query("select * from filer where Unik = '$unik'") or die(mysql_error());
                $row = mysql_fetch_array($result);
              $id = $row['ID'];
              rename( $tmpimg, MAPPE . $id . $extension );
                }
            }
}else{
    $Titel = "";
    }
    echo"<br><form name=\"login\" method=\"post\" action=\"index.php?side=Admin&p=TilfoejFil&ID=".$_GET['ID']."\" enctype=\"multipart/form-data\">
                    <table class=\"tekst\" border=\"0\"><tr><td>Titel:</td><td><input type=\"text\" name=\"Titel\" value=\"$Titel\" style=\"width:175px\"></td></tr>
                    <tr><td>Fil:</td><td><input type=\"file\" name=\"fil\" style=\"width:295px\"></td></tr>
                    <tr><td></td><td align=\"left\"><input type=\"submit\" name=\"tilfoej\" value=\"Tilføj\"></td></tr></table></form>";
                    echo"<br><img src=\"images/pixarrow.gif\"> <a href=\"index.php?side=Admin&p=RedigerEjendomme\">Tilbage til oversigten</a>";
            }elseif($p == "TilfoejLink"){
           
            if(isset($_POST['tilfoej'])){
                $Titel = $_POST['Titel'];
                $URL = $_POST['URL'];
                if(empty($Titel) or empty($URL) or $URL == "http.//"){
                    echo Fejl("Alle felter skal udfyldes!");
                    }else{
                    mysql_query("insert into links (Titel, URL, Ejendom_ID) values ('".$Titel."', '".$URL."', '".$_GET['ID']."')") or die(mysql_error());
                    echo Godkendt ("Linket blev tilføjet!");   
                        }
                }else{
                $Titel = "";
                $URL = "http://";
                }
                    echo"<br><form name=\"login\" method=\"post\" action=\"index.php?side=Admin&p=TilfoejLink&ID=".$_GET['ID']."\">
                    <table class=\"tekst\" border=\"0\"><tr><td>Titel:</td><td><input type=\"text\" name=\"Titel\" value=\"$Titel\" style=\"width:175px\"></td></tr>
                    <tr><td>Adresse:</td><td><input type=\"text\" name=\"URL\" value=\"$URL\" style=\"width:175px\"></td></tr>
                    <tr><td></td><td align=\"left\"><input type=\"submit\" name=\"tilfoej\" value=\"Tilføj\"></td></tr></table></form>";
Avatar billede -kenner- Nybegynder
10. juli 2006 - 21:14 #6
how, der kom lidt for meget kode med, vi prøver igen:


define( 'MAPPE', 'filer/' );

if(isset($_POST['tilfoej']))
{
    $Titel = $_POST['Titel'];
    if(is_uploaded_file($_FILES['fil']['tmp_name']))
    {
        $tmpfile = MAPPE . md5(uniqid(rand(), true));

        if(move_uploaded_file( $_FILES['fil']['tmp_name'], MAPPE . $tmpfile )){
        $extension = ".".substr(strrchr($_FILES['fil']['name'], '.'), 1);
                          $unik = unik_traad();
                  mysql_query("insert into filer (Unik, Titel, Ejendom_ID, Fil_Efternavn) values ('".$unik."', '".$_POST['Titel']."', '".$_GET['ID']."', '".$extension."')") or die(mysql_error());
                  $result = mysql_query("select * from filer where Unik = '$unik'") or die(mysql_error());
                $row = mysql_fetch_array($result);
              $id = $row['ID'];
              rename( $tmpimg, MAPPE . $id . $extension );
                }
            }
}else{
    $Titel = "";
    }
    echo"<br><form name=\"login\" method=\"post\" action=\"index.php?side=Admin&p=TilfoejFil&ID=".$_GET['ID']."\" enctype=\"multipart/form-data\">
                    <table class=\"tekst\" border=\"0\"><tr><td>Titel:</td><td><input type=\"text\" name=\"Titel\" value=\"$Titel\" style=\"width:175px\"></td></tr>
                    <tr><td>Fil:</td><td><input type=\"file\" name=\"fil\" style=\"width:295px\"></td></tr>
                    <tr><td></td><td align=\"left\"><input type=\"submit\" name=\"tilfoej\" value=\"Tilføj\"></td></tr></table></form>";
Avatar billede -kenner- Nybegynder
10. juli 2006 - 21:16 #7
Min anden side returnere fejlen: dette er ikke et jpeg billede, når jeg uploader et .jpg billede..

Source:
$Pro ="";
                $Por ="";
                $Ud ="";
                $Ref ="";
                $Titel = "";
                $Vej = "";
                $By = "";
                $Postnummer = "";
                $Beskrivelse = "";
            if(isset($_POST['Tilfoej'])){
                $Titel = $_POST['Titel'];
                $Vej = $_POST['Vej'];
                $By = $_POST['Byen'];
                $Postnummer = $_POST['Postnummer'];
                $Beskrivelse = $_POST['Beskrivelse'];
                if($_POST['Status'] == "Pro"){
                    $Pro ="SELECTED";
                    }elseif($_POST['Status'] == "Ud"){
                    $Ud ="SELECTED";
                    }elseif($_POST['Status'] == "Por"){
                    $Por ="SELECTED";
                    }elseif($_POST['Status'] == "Ref"){
                    $Ref ="SELECTED";
                    }
                    if(empty($_POST['Titel']) or empty($_POST['Vej']) or empty($_POST['Byen']) or empty($_POST['Postnummer']) or empty($_POST['Beskrivelse']) or empty($_POST['Status'])){
                        echo"alle felter skal udfyldes";
                       
                        }else{
                            define( 'MAPPE', 'ejendomme/' );
                       
      if ( is_uploaded_file( $_FILES['fil']['tmp_name'] ) )
      {
        $tmpimg = MAPPE . uniqid('tmpimg') . uniqid('a');
        move_uploaded_file( $_FILES['fil']['tmp_name'], MAPPE . $tmpimg );
        if ( $inf = @getimagesize( $tmpimg ) )
        {
          if ( $inf[2] == 2 )
          {
              $unik = unik_traad();
                  mysql_query("insert into ejendomme (Unik, Titel, Beskrivelse, Status, Vej, Postnummer, Byen) values ('".$unik."', '".$_POST['Titel']."', '".$_POST['Beskrivelse']."', '".$_POST['Status']."', '".$_POST['Vej']."', '".$_POST['Postnummer']."', '".$_POST['Byen']."')") or die(mysql_error());
                  $result = mysql_query("select * from ejendomme where Unik = '$unik'") or die(mysql_error());
                $row = mysql_fetch_array($result);
              $id = $row['ID'];
              rename( $tmpimg, MAPPE . $id . '.jpg' );
              echo Godkendt("Ejendommen blev tilføjet!");
          }
          else
          {
                echo Fejl("Det er ikke et jpeg billede.");
              @unlink( $tmpimg );
          }
        }
        else
        {
          echo Fejl("Det er ikke et jpeg billede.");
        }
      }
                            }
                }
                echo"<br><form name=\"tilfoej\" method=\"post\" action=\"index.php?side=Admin&p=TilfoejEjendom\" enctype=\"multipart/form-data\">
    <table class=\"tekst\" border=\"0\"><tr><td>Titel:</td><td><input type=\"text\" name=\"Titel\" value=\"$Titel\" style=\"width:175px\"></td></tr>
    <tr><td>Vej:</td><td><input type=\"text\" name=\"Vej\" value=\"$Vej\" style=\"width:175px\"></td></tr>
    <tr><td>By:</td><td><input type=\"text\" name=\"Byen\" value=\"$By\" style=\"width:175px\"></td></tr>
    <tr><td>Postnummer:</td><td><input type=\"text\" name=\"Postnummer\" value=\"$Postnummer\" style=\"width:175px\"></td></tr>
    <tr><td>Status:</td><td><Select name=\"Status\"><option value=\"0\">Vælg</option><option value=\"Pro\" $Pro>Projekter</option><option value=\"Por\" $Por>Portefølje</option><option value=\"Ref\" $Ref>Referencer</option><option value=\"Ud\" $Ud>Udlejning</option></select></td></tr>
    <tr><td>Billede:</td><td><input type=\"file\" name=\"fil\" style=\"width:350px\"></td></tr>
    <tr><td>Beskrivelse:</td><td><textarea name=\"Beskrivelse\" style=\"height:150px;width:350px\">$Beskrivelse</textarea></td></tr>
    <tr><td></td><td align=\"left\"><input type=\"submit\" name=\"Tilfoej\" value=\"Tilføj\"></td></tr></table></form>";
Avatar billede -kenner- Nybegynder
13. juli 2006 - 14:02 #8
tak for hjælpen begge to :)
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