Upload PHP ok mais fichier déplacé = 0 octets - PHP - Programmation
MarshPosté le 19-02-2008 à 02:52:26
Bonjour,
Voilà j'ai une page d'upload qui se charge depuis mon formulaire html. Dans ma page d'upload je récupère bien mes variables, l'upload marche mais le fichier (image) pèse 0 octets dans le dossier cible et donc est illisible. J'ai copié le code ci-dessous, si ce n'est pas clair dites-moi je changerai. Merci.
if ($userfile_error > 0) { echo 'Problème: '; switch ($userfile_error) { case 1: 'File exceeded upload max_filesize'; break; case 2: 'File exceeded max_file size'; break; case 3: 'File only partially uploaded'; break; case 4: 'No file uploaded'; break; } echo '<br /><br /><a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>'; exit; }
if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $userfile_name) ) { echo '<a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>'; exit("Nom de fichier non valide" ); }
if (!getimagesize($userfile)) { echo '<a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>'; exit("Le fichier n'est pas une image, script interrompu." ); }
if (is_uploaded_file($userfile)) { if (!move_uploaded_file($userfile, $upfile)) { echo 'Problème: L\'image n\'a pas pu être déplacée vers le répertoire de destination.'; echo '<a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>'; exit; } } else { echo 'Problème: Possible file upload attack. Filename: '.$userfile_name; exit; }
Marsh Posté le 19-02-2008 à 02:52:26
Bonjour,
Voilà j'ai une page d'upload qui se charge depuis mon formulaire html.
Dans ma page d'upload je récupère bien mes variables, l'upload marche mais le fichier (image) pèse 0 octets dans le dossier cible et donc est illisible.
J'ai copié le code ci-dessous, si ce n'est pas clair dites-moi je changerai.
Merci.
<?php
$page = @$_GET['page'];
switch ($page)
{
case "maison":
$userfile = $_FILES['uploadedfile']['tmp_name'];
$userfile_name = $_FILES['uploadedfile']['name'];
$userfile_size = $_FILES['uploadedfile']['size'];
$userfile_type = $_FILES['uploadedfile']['type'];
$userfile_error = $_FILES['uploadedfile']['error'];
if ($userfile_error > 0)
{
echo 'Problème: ';
switch ($userfile_error)
{
case 1: 'File exceeded upload max_filesize'; break;
case 2: 'File exceeded max_file size'; break;
case 3: 'File only partially uploaded'; break;
case 4: 'No file uploaded'; break;
}
echo '<br /><br /><a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>';
exit;
}
if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $userfile_name) )
{
echo '<a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>';
exit("Nom de fichier non valide" );
}
if (!getimagesize($userfile))
{
echo '<a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>';
exit("Le fichier n'est pas une image, script interrompu." );
}
$upfile = '../images/maison/photos/'.$userfile_name;
if (is_uploaded_file($userfile))
{
if (!move_uploaded_file($userfile, $upfile))
{
echo 'Problème: L\'image n\'a pas pu être déplacée vers le répertoire de destination.';
echo '<a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>';
exit;
}
}
else
{
echo 'Problème: Possible file upload attack. Filename: '.$userfile_name;
exit;
}
echo 'Fichier envoyé avec succès !<br /><br />';
$fp = fopen($upfile, 'w');
$contents = fread ($fp, filesize ($upfile));
fclose($fp);
$contents = strip_tags($contents);
$fp = fopen ($upfile, 'w');
fwrite($fp, $contents);
fclose($fp);
echo 'Apreçu du contenu de l\'image envoyée : <br /><hr />';
echo $contents;
echo '<br /><hr />';
echo '<a href="'.$page.'.php">Cliquez ici pour revenir à la page précédente></a>';
?>