Avatar billede koch Nybegynder
04. marts 2005 - 01:20 Der er 7 kommentarer og
1 løsning

Uploade flere billeder på en gang

Jeg har nedenstående til at uploade et billede. Jeg  vil gerne have sådan at jeg kan uploade flere billeder på en gang. Kan jeg ikke bare gentage fra // Tjekker om filen eksisterer, hvis den gør uploades? hvor jeg så ændrer navnet på upfil eller er der en anden ide?

$filename = 'pics/$idinsert';//directory som billederne skal lægges i

if (file_exists($filename))
{
$konfiguration["upload_bibliotek"] = "sti/pics/$idinsert"; 
}
else
{
  mkdir("pics/$idinsert", 0777);
  $konfiguration["upload_bibliotek"] = "sti/pics/$idinsert";
}

// 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"];
   
//den uploadede fil flyttes
  move_uploaded_file($fra, $til);
}
else
{
  copy($fra, $til);
}
Avatar billede sukos Juniormester
04. marts 2005 - 20:24 #1
Det virker lidt rodet dit script der.
Men hvis du kalder din form for upfil[] og putter det antal på du vil

<input name="upfil[]" type="file"><br>
<input name="upfil[]" type="file"><br>
<input name="upfil[]" type="file">


kan du:

for($i = 0; $i < count($_FILES["upfil"]["name"]); $i++) {
    if (trim($_FILES["upfil"]["name"][$i]) !="") {
        if(is_uploaded_file($_FILES["upfil"]["tmp_name"][$i])) {

$til = $_SERVER['DOCUMENT_ROOT']. "/" .$konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"][$i];

    move_uploaded_file($_FILES["upfil"]["tmp_name"][$i], $til);

        }
    }
}
Avatar billede sukos Juniormester
04. marts 2005 - 20:25 #2
hmm, dette gør det vist også:

for($i = 0; $i < count($_FILES["upfil"]["name"]); $i++) {
    if(is_uploaded_file($_FILES["upfil"]["tmp_name"][$i])) {

$til = $_SERVER['DOCUMENT_ROOT']. "/" .$konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"][$i];

    move_uploaded_file($_FILES["upfil"]["tmp_name"][$i], $til);

    }
}
Avatar billede sukos Juniormester
04. marts 2005 - 20:25 #3
Hov, det har jo forresten ikke noget med mysql at gøre?
Avatar billede koch Nybegynder
05. marts 2005 - 11:55 #4
hov, det har du jo ret i. Jeg tænkte vist bare på at jeg arbejdede med min database! Håber vi kan gøre det færdig her

Det virker når det ser således ud:
Jeg har kommenteret koderne, ser det ud til at jeg har forstået det korrekt?

//dir hvor billederne lægges
$konfiguration["upload_bibliotek"] = "sti/pics/$idinsert"; 

//laver bibiliotek
mkdir("pics/$idinsert", 0777);

//fra i=0 til det antal upfiler der er
for($i = 0; $i < count($_FILES["upfil"]["name"]); $i++) {

//is_uploaded_file, hvis der er en fil uploaded via HTTP POST
    if(is_uploaded_file($_FILES["upfil"]["tmp_name"][$i])) {

//definering af dir hvor filen skal flyttes til. $_SERVER['DOCUMENT_ROOT']=sti til roden fra det dokument du skriver fra.
$til = $_SERVER['DOCUMENT_ROOT']. "/" .$konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"][$i];

//flytter fra det temp. bibliptek til $til
    move_uploaded_file($_FILES["upfil"]["tmp_name"][$i], $til);
    }
}


I min insert fil har jeg så:

<input type="file" name="upfil[]" value="" size="30"/>
<input type="file" name="upfil[]" value="" size="30"/>
Avatar billede sukos Juniormester
05. marts 2005 - 13:07 #5
Har du prøvet det af?

Ved ikke hvor du får $idinsert fra, og din sti-angivelse ved jeg ikke lige?
Avatar billede koch Nybegynder
05. marts 2005 - 18:28 #6
Ja det virker... $idinsert=mysql_insert_id(); og stien er også ok, det var bare for at illustrere. Smid endelig et svar. Skal jeg egentlig ikke have en exit-et eller andet hver gang jeg haar hentet noget fra databasen?
Avatar billede sukos Juniormester
06. marts 2005 - 11:40 #7
Hvis du bruger exit; dør dit script.
Men når henter,
$var = mysql_query("SELECT * FROM db");
er det en go ide altid at bruge:
mysql_free_result($var);
når du er færdig med $var
Avatar billede koch Nybegynder
06. marts 2005 - 16:27 #8
mange tak for hjælpen.
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
Computerworld tilbyder specialiserede kurser i database-management

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