Beste,

ik wil de grootte van mijn bestand opslaan in mijn database. dit doe ik met filesize() maar hij geeft deze foutmelding:

Parse error: parse error, unexpected T_VARIABLE in /usr/local/psa/home/vhosts/pdesmet.be/httpdocs/uploaden/index.php on line 32

dit is mijn code:
include("includes/config.php");

if($submit)
{
$naam = $_POST["Naam"];
$link = "http://uploaden.pdesmet.be/bestanden/$naam"
$size = "filesize($naam)"

$insertBestand = "INSERT INTO $tableBestanden (Naam, Link, Grootte) VALUES ('$naam','$link','$size')";
$queryBestand = mysql_query($insertBestand)or die(mysql_error());

}

print"
<form enctype='multipart/form-data' action='upload.php' method='post'>
<input type='hidden' name='MAX_FILE_SIZE' value='51200'>
<table>
<tr>
<td class='bold'>
Selecteer een bestand: <input name='userfile' type='file' class='form'><br><br>
</td>
</tr>
<tr>
<td align='center'><input type='submit' name='submit' value='upload bestand' class='form'></td>
</tr>
</table>
</form>";

line 32 is de line met de filesize() in ;)

Bedankt op voorhand,
Greets Bjeenie
<?
$size = "filesize($naam)"
?>

Moet zijn:

<?
$size = filesize($naam);
?>
aaah bons
bedankt é
Verder trouwens zoals al heel vaak gezegd, variabelen horen buiten quotes gehaald te worden.

Dus niet:

<?
$link = "http://uploaden.pdesmet.be/bestanden/$naam"
?>

Maar:

<?
$link = "http://uploaden.pdesmet.be/bestanden/".$naam;
?>

Daar zit meteen nog een fout omdat je de ; op het einde daar vergeten bent. Verder is het nog iets sneller om ' te gebruiken ipv " dus optimale code zou zijn:

<?
$link = 'http://uploaden.pdesmet.be/bestanden/'.$naam;
?>
ja heb ik al gemerkt, strafwel bedankt!!
heb verandert van pagina omdat hij link niets in mijn database wilde stoppen aangezien mijn form anders staat. maar nu wil die filesize() terug niet werken.
geeft deze fout:

Warning: filesize(): Stat failed for Test.txt (errno=2 - No such file or directory) in /usr/local/psa/home/vhosts/pdesmet.be/httpdocs/uploaden/upload.php on line 31
Het bestand is geupload onder de naam: Test.txt

dit is code van upload:

include("includes/config.php");
global $_FILES;
$filename = $_FILES['Naam']['name'];
$uploadname = $_FILES['Naam']['name'];
$link = "http://uploaden.pdesmet.be/bestanden/".$filename;
$size = filesize($filename);

$insertBestand = "INSERT INTO $tableBestanden (Naam, Link, Grootte) VALUES ('$filename','$link','$size')";
$queryBestand = mysql_query($insertBestand)or die(mysql_error());

if (is_uploaded_file($_FILES['Naam']['tmp_name'])) {
move_uploaded_file($_FILES['Naam']['tmp_name'], "bestanden/" . $uploadname);

echo "Het bestand is geupload onder de naam: $uploadname";
}


wat is daar nu weer verkeerd aan?
bedankt op voorhand!
Greets Bjeenie
Laat

<?
global $_FILES;
?>

eens weg, $_FILES[] is altijd beschikbaar dus dat is nergens voor nodig.
<?
$insertBestand = "INSERT INTO $tableBestanden (Naam, Link, Grootte) VALUES ('$filename','$link','$size')";
?>

Zou moeten worden:

<?
$insertBestand = "INSERT INTO ".$tableBestanden." (Naam, Link, Grootte) VALUES ('".$filename."','".$link."','".$size."')";
?>

Variabelen buiten quotes enzo...

Ook is de controle met is_uploaded_file() niet nodig omdat move_uploaded_file() dat al controleerd.
Het zou dus zo kunnen:

Ipv dit:

<?
if (is_uploaded_file($_FILES['Naam']['tmp_name'])) {
move_uploaded_file($_FILES['Naam']['tmp_name'], "bestanden/" . $uploadname);

echo "Het bestand is geupload onder de naam: $uploadname";
}
?>

Kan dit:

<?
if (move_uploaded_file($_FILES['Naam']['tmp_name'], 'bestanden/'. $uploadname)) {
echo 'Het bestand is geupload onder de naam: '.$uploadname; // ook weer var buiten quotes
}
?>
<?
$link = "http://uploaden.pdesmet.be/bestanden/".$filename;
$size = filesize($filename);
?>

je kunt geen filesize() doen omdat je eerst zegt van dit is een url adres, en pak nu de filesize van het bestand $filename.. $filename is 'batestest.txt' bijvoorbeeld, en hoe moet filesize() nou weten waar die staat?? je moet hem eerst uploaden naar je server, en dan kun je pas kijken hoe groot hij is als je filesize() wil gebruiken..

Maar als je een plaatje, of bestand upload dan krijg je sowieso al een array mee ($_FILES) waar de filesize ook al in staat.. dit is:

<?
$size = $_FILES['Name']['size'];
?>

Reageren