Avatar billede encorez Nybegynder
17. december 2009 - 15:31 Der er 3 kommentarer og
2 løsninger

Upload og validere tekst fil

Hej
Jeg vil gerne på min side, uploade en simpel txt fil, og så skal jeg linie for linie med PHP lave noget validering og udskrive resultatet.
Men jeg kan ikke komme i gang, da jeg ikke kan finde ud af at aflæse den fil jeg uploader. Jeg prøver dette:

<?php if($_REQUEST[validate_mef]){
$fil = file($_FILES[mef_file]);
foreach($fil as $linje)
{
    echo $linje . "<br />";
}
}?>

<form action="fil.php" method="post" enctype="multipart/form-data">
        <input type="file" name="en_file">
    <input type="submit" value="Start validation of file" name="validate_file" /></form>

Jeg koder lokalt og har installeret WampServer. Jeg har sat indstillingen til at man kan uploade filer.

Nogen der kan hjælpe?
Avatar billede xicrow Nybegynder
17. december 2009 - 17:11 #1
Prøv det her, og se om ikke det virker, og kan hjælpe dig lidt på rette vej:

<?php
// Move uploaded files to this folder
$folder = realpath('.').'/';

// Check if submit button has been pressed
if (isset($_POST['validate_file'])){
    // Debug message...
    echo 'Submit button pressed...<br />';
   
    // Check if file is uploaded
    if (is_uploaded_file($_FILES['file']['tmp_name'])){
        // Debug message...
        echo 'File uploaded...<br />';
       
        // Move file to the upload directory
        if (move_uploaded_file($_FILES['file']['tmp_name'], $folder.$_FILES['file']['name'])){
            // Debug message...
            echo 'File moved...<br />';
            echo 'File located at: '.$folder.$_FILES['file']['name'].'<br />';
           
            // Get file contents
            $contents = file_get_contents($folder.$_FILES['file']['name']);
            $contents_array = explode("\n", $contents);
            foreach ($contents_array as $line_no => $line){
                echo ($line_no + 1).': '.$line.'<br />';
            }
        }
    }
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<input type="file" name="file">
<br />
<input type="submit" name="validate_file" value="Start validation of file" />
</form>

/xicrow
Avatar billede repox Seniormester
17. december 2009 - 19:42 #2
Det er en utrolig grim syntaks og der adskillige årsager til at det ikke virker.

Prøv nedenstående og bemærk forskellene i syntaksen i forhold til det du har skrevet.


<?php

  if($_FILES["en_file"]["size"] > 0)
  {
    $linier = file($_FILES["en_file"]["tmp_name"]);
    foreach($linier as $linie)
    {
      echo $linie . "<br />";
    }
  }
?>

<form action="fil.php" method="post" enctype="multipart/form-data">
        <input type="file" name="en_file">
    <input type="submit" value="Start validation of file" name="validate_file" /></form>



Avatar billede encorez Nybegynder
17. december 2009 - 23:32 #3
xicrow -> jeg ved ikke om din virkede. Jeg gik direkte til repox da hans så noget mere overskuelig ud.

repox -> det var lige det der skulle til. Det virkede :)
Læg et svar som tak for hjælpen.
Avatar billede repox Seniormester
18. december 2009 - 07:24 #4
Det fik du her
Avatar billede xicrow Nybegynder
18. december 2009 - 09:33 #5
Hey encorez

Det er bare helt i orden. Jeg syntes ligesom repox at din kode var lidt rodet, og valgte derfor at omskrive den, men åbenbart lidt for meget :P

/xicrow
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