Avatar billede jonas_bjerring Nybegynder
14. marts 2006 - 12:42 Der er 19 kommentarer og
1 løsning

Hjælp til at udbygge upload script.

Hej alle sammen når min chef syntes vi skulle til at leje med eFaktura og det er også fint men nu sider jeg med opgaven at lave en side hvor de kan uploade deres xml filer det ser sådan her ud men der skulle gerne være mulighed for at uploade flere filer på engang men jeg skal stadig ha mine functions til at virke på være fil og den kan jeg sku ikke lige se hvordan jeg gør håber på lidt hjælp.

php filen lige nu -->

<?php
include("include/start.php");


$dato = ''. date('d/m-Y') ."\t";
$time = ''. date('G:i') ."\t";

$bruger = $admin_brugernavn;

// Lister filer i bibloteket

    function listfiles()
    {
      $list = array();
      echo '<ul>';
      foreach(glob("*.*") as $file)
      {
        echo '<li><a href="'.$file.'">'.$file.'</a></li>';
      }
      echo '</ul>';
    }

  // undersøger om filen findes

  function checkfile($filename)
    {
      $list = array();
      foreach(glob("*.*") as $file)
      {
        $list[] = $file;
      }
      return in_array($filename,$list);
    }

// viser vores upload form

    function showform()
    {
      echo '
        <form action="" method="post" enctype="multipart/form-data">
        <fieldset>
          <legend>Upload fil</legend>
          <label>Fil:</label><br>
          <input type="file" name="userfile"><br>
          <br>
          <input type="submit" value="Upload" name="upload">
        </fieldset>
        </form>
        <p />
      ';
    }

    if(isset($_POST['upload']))
    {

      $uploadfile = $_FILES['userfile']['name'];
      $uploadfile = str_replace('.php','.phps',$uploadfile);


      if(checkfile($uploadfile))


      {
echo "Filen $uploadfile findes allerede på serveren.";
                  //showform();
          listfiles();

      }
      else
      {
        if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
        {

// læser filtag i XMl.
  $linjer = file( $uploadfile );
  foreach ( $linjer as $linje )
  {
    if ( preg_match( "/<com:BuyersReferenceID/", $linje ) )
    {
      //echo "$linje<br>\n";
      $filetag = "$linje<br>\n";
        }
  }
//læsning slut

    if ($uploadfile == ""){
                $error="Der er sket en internfejl prøv igen..! (Fejl kode 00)";

}

else if ($dato == ""){
        $error="Der er sket en fejl kontakt uninest.dk fejl (kode 01)";
}

else if ($filetag == ""){
                $error="Der kunde IKKE læses et modtager ID fra filen.! kontakt uninest.dk (fejl kode 02)";
}
if (checkfile($uploadfile)){
        $mysql="";
}


// Hvis alt er ok skriver vi logen her..!
  if ($mysql==""){
    mysql_query("insert into uploadlog (Bruger, Filnavn, Dato, Tid, Filtag )
    values ('$bruger', '$uploadfile', '$dato', '$time', '$filetag')") or die (mysql_error());
    $error2="Filen er modtaget og den interne logbog er opdateret.!";


echo "<br>";
echo "Disse data skrives til databasen:";
echo "<br>"; echo $dato;
echo "<br>"; echo $time;
echo "<br>"; echo $bruger;
echo "<br>"; echo $uploadfile;
echo "<br>"; echo $filetag;
echo "<br>";

  }

  // Ved fejl udskrives fejlen her
  if ($error<>""){
    echo "<b><font color='red'>".$error."</font></b><br/>";
  }else if ($error2<>""){
    echo "<b><font color='green'>".$error2."</font></b><br/>";
  }
echo "<div align='center'><strong><a href=admin_loggetind.php>Tilbage</a>";



        }
        else
        {
          echo '<p class="error">Der skete desværre en fejl kontakt uninest.dk</p>';
        // showform();
          //listfiles();
        }
      }
    }
    else
    {
      showform();
//      listfiles();
    }

    ?>
    </div>
  </body>
</html>
Avatar billede jakobdo Ekspert
14. marts 2006 - 17:44 #1
For at uploade flere filer, skal du tilføje flere felter...
<input type="file" name="userfile[1]"><br>
<input type="file" name="userfile[2]"><br>
<input type="file" name="userfile[3]"><br>
osv...

Alle steder hvor du så bruger $_FILES['userfile'][og noget] skal du tilføje: [1], [2] osv...
Evt kan du løbe dem igennem med: foreach($_FILES['userfile'] as $file)
Avatar billede jonas_bjerring Nybegynder
17. marts 2006 - 13:58 #2
hvad så med at får den til at gemme dens filer i et andet biblotek. ???!
Avatar billede jakobdo Ekspert
17. marts 2006 - 14:07 #3
Det er også muligt.
Jeg synes dog du har lidt meget kode, for at uploade et par filer! :o)
Avatar billede jonas_bjerring Nybegynder
17. marts 2006 - 18:57 #4
->Jakobdo

den laver jo også mange ting: uploader, læser en line i en xml fil, Ser om filen findes på serveren men hvis du har et bud er jeg åben.
Avatar billede jakobdo Ekspert
17. marts 2006 - 19:00 #5
Jeg vælger at tro du har kodet det korrekt.
Men du ville genre have flere filer, right?
Avatar billede jonas_bjerring Nybegynder
18. marts 2006 - 19:26 #6
Jo tak det ville være perfekt.
Avatar billede jakobdo Ekspert
18. marts 2006 - 19:35 #7
Prøv at udbyg din form først:

function showform()
    {
      echo '
        <form action="" method="post" enctype="multipart/form-data">
        <fieldset>
          <legend>Upload fil</legend>
          <label>Fil 1:</label><br>
          <input type="file" name="userfile[1]"><br>
          <br>
          <label>Fil 2:</label><br>
          <input type="file" name="userfile[2]"><br>
          <br>
          <label>Fil 3:</label><br>
          <input type="file" name="userfile[3]"><br>
          <br>
          <label>Fil 4:</label><br>
          <input type="file" name="userfile[4]"><br>
          <br>
          <label>Fil 5:</label><br>
          <input type="file" name="userfile[5]"><br>
          <br>
          <input type="submit" value="Upload" name="upload">
        </fieldset>
        </form>
        <p />
      ';
    }

Herefter skal vi bare rette resten af koden! :o)
Du har slet ingen ide om hvordan det skal være selv?
Avatar billede jonas_bjerring Nybegynder
18. marts 2006 - 20:22 #8
Jeg kan ikke lige se hvordan jeg skal få den til at sige ok tiL at uploade hvis folk vælger at uploade f.eks hvis jeg laver 4 boxe men der forsøges at uploade 2 filer kommer min kode jo og siger der er fejl. fordi der er flere felter der er tomme..
Avatar billede jakobdo Ekspert
18. marts 2006 - 21:06 #9
Du laver f.eks. en for-løkke som løber alle 5 filer igennem.
Inden du så laver noget på filen, tjekker du lige
for($i = 1; $i <= 5; $i++)
{
if($_FILES[userfile][size][$i] > 0)
{
//Her har vi en fil...
}
{
Er size
Avatar billede jonas_bjerring Nybegynder
19. marts 2006 - 00:08 #10
Hmm det må jeg lige kikke på men må ind rømme jeg ikke lige kan få det til at passe sammen i mit lille hoved

denne lille stump bliver kørt være gang der er uploadet som det første:
$linjer = file( $uploadfile );
  foreach ( $linjer as $linje )
  {
    if ( preg_match( "/<com:BuyersReferenceID/", $linje ) )
    {
      //echo "$linje<br>\n";
      $filetag = "$linje<br>\n";
        }
  }
//læsning slut

Hvordan ville du så få den til at læse fra alle de filer der er uploadet og skrive dem i være deres variabel så de senere kan skrives til databasen.
Avatar billede jakobdo Ekspert
19. marts 2006 - 12:33 #11
Har prøvet en smule, test lige denne kode:

<?php
//http://www.eksperten.dk/spm/695024
include("include/start.php");

$dato = ''. date('d/m-Y') ."\t";
$time = ''. date('G:i') ."\t";

$bruger = $admin_brugernavn;

// Lister filer i bibloteket
function listfiles()
{
    $list = array();
    echo '<ul>';
    foreach(glob("*.*") as $file)
    {
        echo '<li><a href="'.$file.'">'.$file.'</a></li>';
    }
    echo '</ul>';
}

// undersøger om filen findes
function checkfile($filename)
{
    $list = array();
    foreach(glob("*.*") as $file)
    {
        $list[] = $file;
    }
    return in_array($filename,$list);
}

// viser vores upload form
function showform()
{
    echo '
    <form action="" method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>Upload fil</legend>
            <label>Fil 1:</label><br>
            <input type="file" name="userfile[1]"><br>
            <label>Fil 2:</label><br>
            <input type="file" name="userfile[2]"><br>
            <label>Fil 3:</label><br>
            <input type="file" name="userfile[3]"><br>
            <label>Fil 4:</label><br>
            <input type="file" name="userfile[4]"><br>
            <label>Fil 5:</label><br>
            <input type="file" name="userfile[5]"><br>
            <br>
            <input type="submit" value="Upload" name="upload">
        </fieldset>
    </form>
    <p />';
}

if(isset($_POST['upload']))
{
    foreach($_FILES[['userfile'] as $files)
    {
        $uploadfile = $file['name'];
        $uploadfile = str_replace('.php','.phps',$uploadfile);

        if(checkfile($uploadfile))
        {
            echo "Filen $uploadfile findes allerede på serveren.";
            //showform();
            listfiles();
        }
        else
        {
            if(move_uploaded_file($file['tmp_name'], $uploadfile))
            {
                // læser filtag i XMl.
                $linjer = file( $uploadfile );
                foreach ( $linjer as $linje )
                {
                    if ( preg_match( "/<com:BuyersReferenceID/", $linje ) )
                    {
                        //echo "$linje<br>\n";
                        $filetag = "$linje<br>\n";
                    }
                }
           
                //læsning slut

                if ($uploadfile == "")
                {
                    $error="Der er sket en internfejl prøv igen..! (Fejl kode 00)";
                }
                else if ($dato == "")
                {
                    $error="Der er sket en fejl kontakt uninest.dk fejl (kode 01)";
                }
                else if ($filetag == "")
                {
                    $error="Der kunde IKKE læses et modtager ID fra filen.! kontakt uninest.dk (fejl kode 02)";
                }

                if (checkfile($uploadfile))
                {
                    $mysql="";
                }

                // Hvis alt er ok skriver vi logen her..!
              if ($mysql=="")
              {
                mysql_query("insert into uploadlog (Bruger, Filnavn, Dato, Tid, Filtag )
                values ('$bruger', '$uploadfile', '$dato', '$time', '$filetag')") or die (mysql_error());
                $error2="Filen er modtaget og den interne logbog er opdateret.!";
   
                    echo "<br>";
                    echo "Disse data skrives til databasen:";
                    echo "<br>"; echo $dato;
                    echo "<br>"; echo $time;
                    echo "<br>"; echo $bruger;
                    echo "<br>"; echo $uploadfile;
                    echo "<br>"; echo $filetag;
                    echo "<br>";
                }

                // Ved fejl udskrives fejlen her
              if ($error<>"")
              {
                echo "<b><font color='red'>".$error."</font></b><br/>";
              }else if ($error2<>"")
              {
                echo "<b><font color='green'>".$error2."</font></b><br/>";
                }
            echo "<div align='center'><strong><a href=admin_loggetind.php>Tilbage</a>";
            }
            else
            {
                echo '<p class="error">Der skete desværre en fejl kontakt uninest.dk</p>';
                // showform();
                //listfiles();
            }
        }
    }
}
else
{
    showform();
    //listfiles();
}
?>
        </div>
    </body>
</html>
Avatar billede jonas_bjerring Nybegynder
20. marts 2006 - 22:54 #12
Får denne fejl.
Parse error: parse error, unexpected '[', expecting ']' in /home/e-smith/files/ibays/efakture/html/login/upload1.php on line 57
Avatar billede jakobdo Ekspert
21. marts 2006 - 07:56 #13
Tryk fejl i linien: foreach($_FILES[['userfile'] as $files)
Det skal være: foreach($_FILES['userfile'] as $files)

Der er 2 [[
Avatar billede jonas_bjerring Nybegynder
21. marts 2006 - 11:27 #14
Fuck jeg er blivet blind..! Sory )-:
Avatar billede jakobdo Ekspert
21. marts 2006 - 11:55 #15
:o)
Avatar billede jonas_bjerring Nybegynder
21. marts 2006 - 15:16 #16
Den vil ikke her hos mig jakobdo

Får bare 5 x Der skete desværre en fejl kontakt uninest.dk
Avatar billede jakobdo Ekspert
22. marts 2006 - 18:21 #17
Så legede jeg lige lidt videre:

<?php
//http://www.eksperten.dk/spm/695024
exit();
include("include/start.php");

$dato = ''. date('d/m-Y') ."\t";
$time = ''. date('G:i') ."\t";

$bruger = $admin_brugernavn;

// Lister filer i bibloteket
function listfiles()
{
    $list = array();
    echo '<ul>';
    foreach(glob("*.*") as $file)
    {
        echo '<li><a href="'.$file.'">'.$file.'</a></li>';
    }
    echo '</ul>';
}

// undersøger om filen findes
function checkfile($filename)
{
    $list = array();
    foreach(glob("*.*") as $file)
    {
        $list[] = $file;
    }
    return in_array($filename,$list);
}

// viser vores upload form
function showform()
{
    echo '
    <form action="" method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>Upload fil</legend>
            <label>Fil 1:</label><br>
            <input type="file" name="userfile[1]"><br>
            <label>Fil 2:</label><br>
            <input type="file" name="userfile[2]"><br>
            <label>Fil 3:</label><br>
            <input type="file" name="userfile[3]"><br>
            <label>Fil 4:</label><br>
            <input type="file" name="userfile[4]"><br>
            <label>Fil 5:</label><br>
            <input type="file" name="userfile[5]"><br>
            <br>
            <input type="submit" value="Upload" name="upload">
        </fieldset>
    </form>
    <p />';
}

if(isset($_POST['upload']))
{
    for($i = 1; $i <= 5; $i++)
    {
        $uploadfile = $_FILES['userfile']['name'][$i];
        $uploadfile = str_replace('.php','.phps',$uploadfile);
       
        if(checkfile($uploadfile))
        {
            echo "Filen $uploadfile findes allerede på serveren.";
            //showform();
            listfiles();
        }
        else
        {
            if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploadfile))
            {
                // læser filtag i XML.
                $linjer = file( $uploadfile );
                foreach ( $linjer as $linje )
                {
                    if ( preg_match( "/<com:BuyersReferenceID/", $linje ) )
                    {
                        //echo "$linje<br>\n";
                        $filetag = "$linje<br>\n";
                    }
                }
         
                //læsning slut
                if ($uploadfile == "")
                {
                    $error="Der er sket en internfejl prøv igen..! (Fejl kode 00)";
                }
                else if ($dato == "")
                {
                    $error="Der er sket en fejl kontakt uninest.dk fejl (kode 01)";
                }
                else if ($filetag == "")
                {
                    $error="Der kunde IKKE læses et modtager ID fra filen.! kontakt uninest.dk (fejl kode 02)";
                }
               
                // Hvis alt er ok skriver vi logen her..!
                if (checkfile($uploadfile))
                {
                    mysql_query("insert into uploadlog (Bruger, Filnavn, Dato, Tid, Filtag )
                    values ('$bruger', '$uploadfile', '$dato', '$time', '$filetag')") or die (mysql_error());
                    $error2="Filen er modtaget og den interne logbog er opdateret.!";
       
                    echo "<br>";
                    echo "Disse data skrives til databasen:";
                    echo "<br>"; echo $dato;
                    echo "<br>"; echo $time;
                    echo "<br>"; echo $bruger;
                    echo "<br>"; echo $uploadfile;
                    echo "<br>"; echo $filetag;
                    echo "<br>";
                }
       
                // Ved fejl udskrives fejlen her
                if ($error<>"")
                {
                    echo "<b><font color='red'>".$error."</font></b><br/>";
                }
                else if ($error2<>"")
                {
                    echo "<b><font color='green'>".$error2."</font></b><br/>";
                }
                echo "<div align='center'><strong><a href=admin_loggetind.php>Tilbage</a>";
            }
            else
            {
                echo '<p class="error">Der skete desværre en fejl kontakt uninest.dk</p>';
                // showform();
                //listfiles();
            }
        }
    }
}
else
{
    showform();
    //listfiles();
}
?>
Avatar billede jonas_bjerring Nybegynder
18. april 2006 - 10:11 #18
Kast lige et svar så skal du modtage dine point.
Avatar billede jakobdo Ekspert
18. april 2006 - 10:37 #19
Svar!
Avatar billede jakobdo Ekspert
18. april 2006 - 20:33 #20
Takker for point!
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