par
het06 » 23 déc. 2005, 15:30
Alors maintenant l upload fonctionne
Pour cela j ai repris le tuttorial et j ai tt fait dans un meme fichier
Voici mon code:
Code : Tout sélectionner
<?php
ob_start();
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('jpg');
$taille_max = 512000;
$dest_dossier = './imageguilde/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
echo "fichier envoyé";
}
}
header("refresh:3;url=http://aelezkann.free.fr/index.php?page=image");
ob_end_flush();
?>
<td class="frame">
<!-- Erreur ? -->
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="image.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
le probleme maintenant est vu que je veux que l adresse change au bout de 3 secondes, j ai utilisé la fonction header.
Or, quand je lui envoie un fichier (superieur a 100 ko pour tester),j obtiens un warniing qui me dit
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sdc/6/6/aelezkann/image.php:2) in /var/www/sdc/6/6/aelezkann/image.php on line 35
alors que je mets bien les fonctions ob_start() et ob_end_flush() en debut et en fin comme je l ai deja vu pour utiliser la fonction header
D ou peut venir ce probleme?
Alors maintenant l upload fonctionne
Pour cela j ai repris le tuttorial et j ai tt fait dans un meme fichier
Voici mon code:
[code]
<?php
ob_start();
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('jpg');
$taille_max = 512000;
$dest_dossier = './imageguilde/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
echo "fichier envoyé";
}
}
header("refresh:3;url=http://aelezkann.free.fr/index.php?page=image");
ob_end_flush();
?>
<td class="frame">
<!-- Erreur ? -->
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="image.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
[/code]
le probleme maintenant est vu que je veux que l adresse change au bout de 3 secondes, j ai utilisé la fonction header.
Or, quand je lui envoie un fichier (superieur a 100 ko pour tester),j obtiens un warniing qui me dit
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sdc/6/6/aelezkann/image.php:2) in /var/www/sdc/6/6/aelezkann/image.php on line 35
alors que je mets bien les fonctions ob_start() et ob_end_flush() en debut et en fin comme je l ai deja vu pour utiliser la fonction header
D ou peut venir ce probleme?