Avatar billede jelle Nybegynder
27. august 2008 - 13:12 Der er 15 kommentarer og
1 løsning

Problem med $_FILES

Hej jeg er tidligere ASP-Mand, men er lige starte med at lærer mig php.

Jeg er bare stødt på et underligt problem:

Hvis jeg kører følgende kode, får jeg ikke udskreve filtypen, kun filnavnet:

if(isset($_POST['send7'])){
       
        for ($i=1; $i<=$_SESSION["antalpic"]; $i++)
        {
            $fil = $_POST['pic' . $i];
            $filetype = $_FILES['pic' . $i]['type'];
            echo $fil;
            echo $filtype;
       
        }
        }

Formen jeg får min data fra er lavet således:

<form id="form7" name="form1" method="post" action="?step=8">
    <table width="60%" border="0" align="center">
      <?php
      for ($i=1; $i<=$_SESSION["antalpic"]; $i++)
        {
              echo "<tr>";
                echo "<td width='29%'>Billede " . $i . "</td>";
                echo "<td width='71%'><input name='pic" . $i . "' type='file' id='pic" . $i . "' size='45' /></td>";
              echo "</tr>";
        }

     
     
      ?>
      <tr>
        <td>&nbsp;</td>
        <td><div align="right">
            <input type="submit" name="send7" id="send7" value="Upload" />
        </div></td>
      </tr>
    </table>
  </form>

Siden kan ses her: http://www.photo-deluxe.dk/behind/opretalbum.php?step=6

Håber der er nogen der kan hjælpe!

MVH
Mads
Avatar billede jakobdo Ekspert
27. august 2008 - 13:28 #1
Start evt med at smid denne kode under step8:

echo '<h1>POST</h1>';
echo '<pre>';
print_r($_POST);
echo '</pre>';

echo '<h1>FILES</h1>';
echo '<pre>';
print_r($_FILES);
echo '</pre>';

Så kan du se hvilke data du har at arbejde med.
Avatar billede jelle Nybegynder
27. august 2008 - 13:44 #2
Fik rettet fejlen selv, havde glemt: enctype="multipart/form-data" i min form, og rettede:

{
              echo "<tr>";
                echo "<td width='29%'>Billede " . $i . "</td>";
                echo "<td width='71%'><input name='pic" . $i . "' type='file' id='pic" . $i . "' size='45' /></td>";
              echo "</tr>";
        }


til


for ($i=1; $i<=$_SESSION["antalpic"]; $i++)
        {
            $filtypen = $_FILES["pic" . $i]["type"];
            echo $filtypen;
       
        }
Avatar billede jelle Nybegynder
27. august 2008 - 13:45 #3
hov

rettede:

if(isset($_POST['send7'])){
       
        for ($i=1; $i<=$_SESSION["antalpic"]; $i++)
        {
            $fil = $_POST['pic' . $i];
            $filetype = $_FILES['pic' . $i]['type'];
            echo $fil;
            echo $filtype;
       
        }
        }


til


for ($i=1; $i<=$_SESSION["antalpic"]; $i++)
        {
            $filtypen = $_FILES["pic" . $i]["type"];
            echo $filtypen;
       
        }
Avatar billede jakobdo Ekspert
27. august 2008 - 13:57 #4
Hvorfor ikke bruge: echo "<td width='71%'><input name='pic[]' type='file' id='pic" . $i . "' size='45' /></td>";

i stedet for ?
Avatar billede jakobdo Ekspert
27. august 2008 - 13:58 #5
Så kan du løbe filerne igennem med:

for($i = 0; $i < count($_FILES['pic']); $i++){
}

eller

foreach($_FILES['pic'] AS $file){
}
Avatar billede jelle Nybegynder
27. august 2008 - 14:23 #6
det var egentlig en god idé, men som sagt er jeg først lige gået igang med php, så skal lige ha styr på tingene.
Avatar billede coderdk Praktikant
27. august 2008 - 14:29 #7
<form id="form7" name="form1" method="post" action="?step=8">

skal være

<form id="form7" name="form1" method="post" action="?step=8" enctype="multipart/form-data">
Avatar billede jakobdo Ekspert
27. august 2008 - 14:38 #8
coderdk: Har du set: 27/08-2008 13:44:28 ? :o)
Avatar billede dkfire Nybegynder
27. august 2008 - 14:51 #9
jacobdo: husk at name og id helst skal have den samme værdi, 27/08-2008 13:57:07

echo "<td width='71%'><input name='pic[]' type='file' id='pic[]' size='45' /></td>";
Avatar billede jakobdo Ekspert
27. august 2008 - 14:55 #10
dcfire: Er der nogen grund til at have id med ?
Avatar billede coderdk Praktikant
27. august 2008 - 15:16 #11
jakobdo, haha den overså jeg - jeg kiggede ellers efter det ;)
Avatar billede jakobdo Ekspert
27. august 2008 - 15:31 #12
I know, du plejer jo ikke at træde ved siden af... (så det er rart at se du også kan) :o)
Avatar billede dkfire Nybegynder
27. august 2008 - 17:31 #13
jakobdo: Hvorfor kan du ikke bruge et c ?? ;-)
Men jo id kan være ligemeget, men det afhænger af hvad du vil bruge html koden til. Hvis du vil style den i forhold til id, så skal du jo have id'et med ;-)
Avatar billede jakobdo Ekspert
27. august 2008 - 18:19 #14
dkfire: Tjek... :o)
Avatar billede jelle Nybegynder
19. februar 2010 - 13:15 #15
lukker
Avatar billede jakobdo Ekspert
19. februar 2010 - 13:24 #16
Hvad blev din løsning ?
Siden du ikke har anvendt nogle af vores forslag ?
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