Page 1 sur 1

upload

Posté : 15 avr. 2006, 11:20
par tilillois
slt
suis nouveau dans la programation php
je cré un site avec des galeries photo sur different themes
je voudrai que les visiteurs puisse metre leur photo sur le site, je supose donc que c'est bien ce scripte a ajouté a mon site
seulement quand je le fait fonctionné ça me repond
veuillez selectionner un repertoir valide
$destination_dir = ('http://monsite.ifrance.com/temp/');

qlq1 a une idée
merci

Posté : 15 avr. 2006, 11:22
par zeus
modération : pas de question dans la FAQ ;)
Je déplace le sujet dans un forum plus approprié

re

Posté : 15 avr. 2006, 11:35
par tilillois
oui mais ou
merci

Posté : 15 avr. 2006, 12:35
par Spartakis
Tu es sûr que le chemin vers le répertoire est correct ? Sinon ça peut être un problème de droit d'écriture.

Posté : 15 avr. 2006, 13:21
par Truc
essaie avec un chemin relatif:
$destination_dir = ('temp'); 
en respectant l'arborescence des dossiers

re

Posté : 15 avr. 2006, 13:21
par tilillois
oui il est correct
pour le droit en ecriture c'est fait aussi
j'ai mi 777 sur les dossier concerné avec ftp expert

re

Posté : 15 avr. 2006, 13:23
par tilillois
j'ai essayé aussi mais rien n'y fait

Posté : 15 avr. 2006, 13:28
par Truc
effectu un test avec le répertoire courant:
$destination_dir = ('.');
et si ça ne marche toujours pas montre un peu les lignes de code

re upload

Posté : 15 avr. 2006, 13:31
par tilillois
je poste mon scripte peut ça ira mieu
<?php

if(isset($_FILES['photo']))
{
  // params
  unset($erreur);
  $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
  $taille_max = 100000;
  $dest_dossier = 'http://monsite/photo';
 
// [b][color=brown]ici ça doit etre le repertoire de destination sur le site[/color][/b]


 // vérifications
  if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
  {
    $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';  
  }
  elseif( file_exists($_FILES['photo']['temp']) 
          and filesize($_FILES['photo']['temp']) > $taille_max)
  {
// [b][color=brown]ici le repertoire temporaire que j'ai crée sur le serveur du site[/color][/b]
    $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']['temp'], $dest_dossier . $dest_fichier);
  }
}

?>
<html>
<body>
<!-- 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="30.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>
<p><label for="photo_2">Photo 2 :</label><input type="file" name="photo_2" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
</body>
</html>
voila si qlq1 peut peut m'aider
merci