Na aanleiding van deze tutorial: link van PHP Academy heb ik geprobeerd om een soort image-upload systeempje in elkaar te zetten. Nou is het probleem dat in dit script met de volgende regels wordt gechecked of er een bestand aanwezig is:

$file = $_FILES['image']['tmp_name'];

if (!isset($file))


Hij haalt het dus van een soort temporary directory oid. Het probleem nu alleen is dat mijn server kennelijk die bestanden niet van de temporary directory wist. Oftewel, elke keer als ik nu de pagina open upload hij al een image, omdat hij namelijk de $_FILES['image']['tmp_name'] van vorige keer nog neemt. Weet iemand hoe dit op te lossen? (Ik heb een website gehost bij one.com).

Heel erg bedankt!

Groeten,
Bas

<?php

//Connect to database

$host="mysql"; // Host name
$username="user"; // Mysql username
$password="ww"; // Mysql password
$db_name= "db"; // Database name
$tbl_name=$_POST['folder']; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("Cannot connect to server. ");
mysql_select_db("$db_name")or die("Cannot select database. ");

// File properties
$file = $_FILES['image']['tmp_name'];

if (!isset($file))
echo "Selecteer alstublieft een afbeelding.";
else
{
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['tmp_name']);
$image_size = getimagesize($_FILES['image']['tmp_name']);

if ($image_size==FALSE)
echo "Het bestand dat je hebt geselecteerd is geen afbeelding. Kies aub een afbeelding uit.";
else
{
if(!$insert = mysql_query("INSERT INTO ".$tbl_name." VALUES ('','".$image_name."','".$image."')"))
echo "Het bestand kan niet worden geüpload. Neem contact op met Bas.";
else
{
$lastid = mysql_insert_id();
echo "Image uploaded. <image src=get.php?id=$lastid>";
}
}
}

?>[/code]
Dit is logischer:
<?php
if(!isset($_FILES['image']['tmp_name']))
?>

$Vars horen niet tussen quotes te staan (regel 12, 13 en 35). Addslashes() is geen beveiliging voor de database, zie mysql_real_escape_string(). Waarom zet je het plaatje in de database? Knap groot en lastig. $image_size = getimagesize($_FILES['image']['tmp_name']); En dan doe je if ($image_size==FALSE).
Niet logisch want in $image_size zit een array(). Als de INSERT query niet lukt zeg je dat het bestand niet is geüpload. Ook niet logisch. Gebruik enkele quotes bij echo zodat je de html valid kan maken met dubbele quotes. Die ontbreken nu.

Reageren