Avatar billede koch Nybegynder
24. februar 2005 - 23:24 Der er 5 kommentarer og
1 løsning

Oprette mappe med id som navn når der uploades billede

Jeg har en side hvor jeg kan uploade nogle billeder, samtidig med at der oprettes en række i min tabel i min database. Jeg vil gerne have at der bliver oprettet en mappe med navnet som svarer til id på den nye række som er tilføjet i min tabel.

Dvs. hvis jeg har oprettet en ny række med id=45 så skal mappen hvor billederne uploades til hedde 45.

Det må meget gerne være et forslag som der kan arbejdes lidt med...
_________________________________
Mit upload script ser således ud:

<?
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "";
$DBName = "cars";
$table = "carlist";
mysql_connect($DBhost,$DBuser,$DBpass) or die("Unable to connect to database");

@mysql_select_db("$DBName") or die("Unable to select database $DBName");


extract($_POST);
$sqlquery = "insert into $table values('$mark','$year','$notice','$km', '$price','$id')";


$galleri = mysql_query($sqlquery);

mysql_close();
print "<html><head><title>Insert data</title></head><body><h1>Data er indsat</h1>";
print "<h2>You have just entered this record</h2>";
print "<b>M&aelig;rke </b>: $mark<br />";
print "<b>&Aring;rgang </b>: $year<br />";
print "<b>Bem&aelig;rk</b>:$notice<br />";
print "<b>Km.</b>:$km<br />";
print "<b>Pris</b>:$price<br />";
print "<b>Id</b>:$id<br />";
</body></html>";


//Upload script

//Der hvor filerne uploades til
$konfiguration["upload_bibliotek"] = "mappe/pics";
//Hvor meget hver fil må fylde i Kb
$konfiguration["max_stoerrelse"] = "30";


// Checker PHP-version
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}
//Skaber de "moderne" arrays hvis der arbejdes med en aeldre PHP, udligner forskellene mellem 4.1.x og 4.0.x
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}

// Tjekker om filen eksisterer, hvis den gør uploades
if($_FILES["upfil"]["size"] > 0)
{
    // Hvor flytter vi fra og til
    $fra = $_FILES["upfil"]["tmp_name"];
    //$_SERVER['DOCUMENT_ROOT']=sti til roden fra det dokument du skriver fra.
    $til = $_SERVER['DOCUMENT_ROOT']. "/" .$konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
   
    //Accepteres filens stoerrelse?
    $fil_stoerrelse = filesize($fra)/1024;
    if($fil_stoerrelse > $konfiguration["max_stoerrelse"])
    {
      die("Desværre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse, 1) . " kb");
    }

      //den uploadede fil flyttes
  move_uploaded_file($fra, $til);
}
else
{
  copy($fra, $til);
}
Avatar billede detox Nybegynder
24. februar 2005 - 23:29 #1
Du kan få nummeret på dit sidst indsatte id med: mysql_insert_id()
http://dk2.php.net/manual/en/function.mysql-insert-id.php

og lave en ny mappe med: mkdir()
http://dk2.php.net/manual/en/function.mkdir.php
Avatar billede koch Nybegynder
24. februar 2005 - 23:40 #2
det ser lovende ud. Desværre får jeg først 'rodet' videre i morgen, nitte. men tak indtil videre!
Avatar billede koch Nybegynder
25. februar 2005 - 15:55 #3
Så er vi i gang :)
Jeg har fået fat i id´et med mysql_insert_id(). Nu skal jeg bare have oprettet mappen med dette id.

Jeg har indsat mkdir("mappe/pics/$idinsert", 0700); og jeg har forsøgt med / efter $idinsert også.

hvor $idinsert er deri jeg har gemt mit id.

Jeg får følgende fejl:
Warning: mkdir(mappe/pics/65): No such file or directory in c:\programmer\apache group\apache\htdocs\mappe\script.php on line 41

Hvad er det jeg misser her? Jeg har brugt mkdir() fra http://dk2.php.net/manual/en/function.mkdir.php
Avatar billede detox Nybegynder
25. februar 2005 - 16:09 #4
Hvis scriptet ligger i: 'mappe' skal stien jo være:

mkdir("pics/$idinsert", 0700);

men tror du ikke det skal være 0777 ift. at man skal kunne uploade til mappen?
Avatar billede koch Nybegynder
25. februar 2005 - 16:20 #5
Sådan ;o) Så blev mappen oprettet. Jeg ændrede til mkdir("pics/$idinsert", 0777); Du smider bare lige et svar. Tusinde tak for hjælpen ;)
Avatar billede detox Nybegynder
25. februar 2005 - 16:22 #6
Velbekommen
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