Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: php image upload probleem  (gelezen 1328 keer)

Offline mathiflip

  • Lid
php image upload probleem
« Gepost op: 2010/08/25, 16:52:00 »
hey iedereen,

ik heb een php script gemaakt om een foto up te loaden.
ik denk dat alles werkt maar de foto komt niet in de map /img.
ik denk dat er een probleem is met het schrijven in die map.
ik heb nochtans de permissies gewijzigd: sudo chmod 777 /var/www/
nu zou ik toch moeten kunnen schrijven, niet? of heb ik de chmod fout gedaan?

ik gebruik de lamp server op ubuntu 10.04

alvast bedankt voor de hulp

Re: php image upload probleem
« Reactie #1 Gepost op: 2010/08/25, 16:56:18 »
De map waar de foto's moeten komen moet je ook nog even chmodden naar 777
Dan zou het moeten werken.

Voeg anders onder het script het volgende in, dan zie je of er fouten gebeurt zijn en welke
<pre>
<?php
if (array_key_exists('upload'$_POST)) {
print_r($_FILES);
}
?>

</pre>

Verklaring van het fout-nummer:
0 Upload successful
1 File exceeds maximum upload size specified in php.ini (default 2MB)
2 File exceeds size specified by MAX_FILE_SIZE embedded in the form
3 File only partially uploaded
4 Form submitted with no file specified
5 Currently not defined
6 No temporary folder (PHP 4.3.10 and 5.0.3 and above)
7 Cannot write file to disk (PHP 5.1.0 and above)

Offline mathiflip

  • Lid
Re: php image upload probleem
« Reactie #2 Gepost op: 2010/08/25, 20:18:15 »
die array_key_exists() functie lijkt niet te werken.

ik heb ondertussen nog is_uploaded_file($_FILES['foto']['tmp_name']) toegevoegd en deze geeft true, dus de temp file is wel degelijk geupload?
maar de foto geraakt nog steeds niet in de img map. ik heb ook de pathnaam absolute gemaakt, maar geeft ook geen verschil.

ik zal de code hier ook even posten:
$imgMap="http://localhost/guri/img/";
$form=<<<EOD
<form method="post" action="admin.php" enctype="multipart/form-data">
<table>
<tr>
<td>titel:</td>
<td colspan="2"><input type="text" name="titel" /></td>
</tr>
<tr>
<td>tekst:</td>
<td colspan="2"><textarea name="tekst" rows="15" cols="33"></textarea></td>
</tr>
<tr>
<td>afbeelding:</td>
<td><input type="file" name="foto" value="Upload" /></td>
</tr>
<tr>
<td colspan="3"><input type="submit" name="submit" value="Voeg toe" /></td>
</tr>
</table>
</form>
EOD;
if(!isset($_POST['submit']))
{
echo $form;
}
else
{
    echo is_uploaded_file($_FILES['foto']['tmp_name']);
    if (array_key_exists('foto', $_POST)) {
            echo "<pre>";
            print_r($_FILES);
            echo "</pre>";
    }
    $titel=mysql_real_escape_string($_POST['titel']);
$tekst=mysql_real_escape_string($_POST['tekst']);
    if($_FILES['foto']['name']!=null){
        $foto=$imgMap.$_FILES['foto']['name'];
        $fotoKlein=$imgMap."klein_".$_FILES['foto']['name'];
    }
$auteur="Mathias";
    if ($_FILES["file"]["error"] > 0)
    {
      echo "Error: " . $_FILES["foto"]["error"] . "<br />";
    }
    else
    {
      if (file_exists($fotoKlein))
      {
        echo $fotoKlein . " bestaat al! ";
      }
      else
      {
        $test=move_uploaded_file($_FILES["file"]["tmp_name"], $fotoKlein);
        if($test==false){
            echo "mislukt!";
        }
        else { echo "Foto opgeslagen in ". $fotoKlein; }
      }
     $query="INSERT INTO nieuws (titel,tekst,datum,auteur,foto,fotoKlein) VALUES ('$titel','$tekst',CURDATE(),'$auteur','$foto','$fotoKlein')";
     mysql_query($query) or die("Niet opgeslagen in database. ".mysql_error());
    
     echo "<br />Toegevoegd aan database.<br />";
        
     }
}
« Laatst bewerkt op: 2010/08/25, 20:20:00 door mathiflip »

Offline mathiflip

  • Lid
Re: php image upload probleem
« Reactie #3 Gepost op: 2010/08/25, 20:33:54 »
het is in orde.
ik had ergens $_FILES['file'] ipv $_FILES['foto'] gebruikt. dom

2uur van m'n leven weggesmeten.

toch bedankt!

Re: php image upload probleem
« Reactie #4 Gepost op: 2010/08/25, 20:49:56 »
:D dit heb ook zoveel. of ergens ; of ' vergeten ;)