<?php
session_start();
if (!isset($_SESSION["??????"]))
{
header("Location: ../???????");
}

include_once("????????");

$querylocatie = "SELECT locatie FROM adres";
$result = mysql_query($querylocatie);

$locatiepad="../pdf/"; //of een andere map, vergeet niet de w-rechten
$toegestaan = array ("pdf", "doc", "xls"); // extensies die toegestaan zijn


if (isset($_POST["bevestiging"]))
{
$filename = $locatiepad.$_FILES['bestand']['name'];

if(file_exists($filename))
{
//echo "het bestand ".$filename." bestaat al.";
$error = 1;

}
if(is_uploaded_file($_FILES['bestand']['tmp_name']))
{
$extensie_bestand = pathinfo($_FILES['bestand']['name']);
$extensie_bestand = $extensie_bestand[extension];
$extensies_toegestaan = explode(", ", $toegestaan);
$ok = in_array($extensie_bestand, $toegestaan);

if($ok == 1)
{
if(!move_uploaded_file($_FILES['bestand']['tmp_name'],$locatiepad.$_FILES['bestand']['name']))
{
//echo "het bestand kan niet worden verplaatst";
$error = 2;
}

$queryuploaden = "INSERT INTO downloads (locatie, filename, filetitel, datum)";
$queryuploaden .= "VALUES ('".$_POST["locatie"] ."', '".$_FILES['bestand']['name'] ."', '".$_POST["filetitel"]."', now())";
mysql_query($queryuploaden);?>
<script language='Javascript'>
window.close();
</script>
<?php
}

else
{
//echo "Verkeerde extentie, de toegestane extensies zijn: <b>pdf, doc en xls</b>";
$error = 3;
}
}
else
{
//echo "Het uploaden is mislukt";
$error = 4;
}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link rel="stylesheet" type="text/css" media="screen" href="../cms.css" />
<script language='Javascript'>
function refreshuh(){

window.opener.location.reload();
<!--window.close();
}
</script>
<title>TOEVOEGEN DOWNLOADS</title>
</head>
<br />
<body onunload='refreshuh()'>
<p>
<?php if ((isset($error)) && ($error == 1)) {echo "<span class=\"leeg\">het bestand ".$filename." bestaat al.</span>";} ?>
<?php if ((isset($error)) && ($error == 2)) {echo "<span class=\"leeg\">het bestand kan niet worden verplaatst</span>";} ?>
<?php if ((isset($error)) && ($error == 3)) {echo "<span class=\"leeg\">Verkeerde extentie, de toegestane extensies zijn: <i>pdf, doc en xls</i></span>";} ?>
<?php if ((isset($error)) && ($error == 4)) {echo "<span class=\"leeg\">Het uploaden is mislukt</span>";} ?>
</p>
<form action="download_toevoegen.php?error=<?php echo $error; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="bevestiging" value="1" />
<table width="800px" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>locatie:</td>
<td><select name="locatie">
<?php
while ($row = mysql_fetch_array($result))
{?>
<option>
<?php
$locatie = $row["locatie"];
echo $locatie;
}?>
</select></td>
<td><input name="upload" type="image" class="icon" src="../icons/page_save.png" /></td>
</tr>
<tr>
<td width="8%">filename:</td>
<td width="53%">
<input type="file" name="bestand"/> </td>
<td width="39%"> </td>
</tr>
<tr>
<td>filetitel:</td>
<td>
<input type="text" name="filetitel"/> </td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</body>


Ik heb een probleempje met mn file_exists. Mijn bestandsnaam wordt juist uitgelezen. Maar het if statement van file_exists wordt overgeslagen.
<?php
$filename = $locatiepad.$_FILES['bestand']['name'];

if(file_exists($filename))
{
//echo "het bestand ".$filename." bestaat al.";
$error = 1;
}
?>

De gegevens uit $filename zijn correct.

Als ik er dit tussenzet dan wordt mijn bestand wel gezien als bestaand :?!
<?php
if (isset($_POST["bevestiging"]))
{
$filename = $locatiepad.$_FILES['bestand']['name'];

if(file_exists($filename))
{
echo "het bestand ".$filename." bestaat al.";
$error = 1;

}
echo "error is ".$error;
echo "filename is ".$filename;
exit();

if(is_uploaded_file($_FILES['bestand']['tmp_name']))
{?>



"Het bestand ../pdf/ntsgawu_nts.doc bestaat al.error is 1filename is ../pdf/ntsgawu_nts.doc"
ik krijg en de error terug en de echo binnen het if statement maar ook $filename. En die klopt. Maar als ik deze 3 regels:
<?php
echo "error is ".$error;
echo "filename is ".$filename;
exit();
?>
er tussenuit laat dan werkt het niet....


Als ik dan zonder die exit(); bij $locatiepad er $_SERVER[DOCUMENT_ROOT] bij zet maakt dit niet uit. Dus er is iets niet in orde.

waarom wordt mijn $error = 1 niet gezien en doorgegeven?
<?php
if(isset($error) && $error !=1){
echo "error is ".$error;
echo "filename is ".$filename;
exit();
}
?>
En gebruik aub code tags.
m ik wordt hier verkeerd begrepen denk ik.
Vraagstelling overnieuw:

Als ik een bestand wil uploaden maar dit al in de map bestaat (waar naar geupload wordt) dan zou ik $error moeten setten naar 1. Maar die functie file_exists wordt niet goed gezien in mijn script denk ik . Want error wordt nooit 1. Behalve als ik er die exit(); tussen zet. Maar dan heb ik er niks aan.

Wat zijn code tags dan??
Je checkt of het bestand al bestaat, zo ja dan zal $error de waarde 1 krijgen. Maar daarna ga je vrolijk verder met het kijken of het bestand geupload is. Dit stuk moet natuurlijk niet uitgevoerd worden als het bestand al bestaat.

Kortom die if die nu voor is_uploaded_file() staat moet een elseif worden.

ps. Code tags zijn: [ignore]
[/ignore]. Plaats ze om je code heen het zodat het geheel wat leesbaarder wordt.
holy Blanche :respect: Dank u zeer zeeer!!!
*waarom zijn het altijd van die simpele foutjes....:)

2 moderator --> close topic;)

Reageren