upload de fichier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : upload de fichier

ok merci

par fowndi » 14 mai 2008, 13:36

j'ai changer le CHMOD du dossier, garce à mon client FTP et je suis repasser à mon chemin relatifs "../designpages/".
j'avais aussi un problème de header que j'ai corriger en mettant mon inscription dans la base de donnée juste avant la copie du fichier, et juste après on a la redirection et cela fonctionne nickel.
:lol: . Merci à KATAGOTO et à Jerome

par b.jerome » 14 mai 2008, 13:28

A priori le chemin vers le dossier "propos" n'est pas le bon.

essaye
$dest_dossier=dirname( __FILE__ ).'/propos/';

ou 

$dest_dossier='var/www/lhosts/progsuivi/designpages/propos/';

Les 2 sont identiques. Tu dois donc vérifier qu'il existe bien le dossier 'propos' dans le dossier'designpages' et accesoirement les restrictions comme l'a dit katagoto.

re upload

par fowndi » 14 mai 2008, 12:43

comment puis je vérifier l'écriture dans le dossier? et comment puis je corriger mon problème.

par katagoto » 14 mai 2008, 12:39

Regarde si tu peux écrire dans ce dossier (c'est le CHMOD)

upload de fichier

par fowndi » 14 mai 2008, 11:53

salut la famille PHP,
J'ai un soucis d'upload de fichier sur mon serveur web.
session_start();
$titre=$_POST['titre'];
$domaine=$_SESSION['domaine'];
$date=date ("d/m/Y");
//upload de fichier
if (isset($_FILES['fich']))
{
  //param
  unset($erreur);
  $extensions_ok=array('png', 'gif', 'jpg', 'jpeg');
  $taille_max=2000000;
  $dest_dossier='/ed/designpages/propos/';
 //vérification
   if( !in_array( substr(strrchr($_FILES['fich']['name'], '.'), 1), $extensions_ok ) )
   {    $erreur = 'Veuillez selectionner un fichier de type png, gif ou jpg !';
       echo $erreur;    
   }  
   elseif( file_exists($_FILES['fich']['tmp_name'])
   and filesize($_FILES['fich']['tmp_name']) > $taille_max)  
   {    
   $erreur = 'Votre fichier doit faire moins de 2Mo !'; 
    echo $erreur; 
   }
   // copie du fichier
   if(!isset($erreur))  
   {    
   $dest_fichier = basename($_FILES['fich']['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-9]+)/i', '_', $dest_fichier);  
   // copie du fichier    
   move_uploaded_file($_FILES['fich']['tmp_name'], $dest_dossier . $dest_fichier);
   
   //INSERTION DANS LA BASE DE DONNEE DE LA PROPOSITION
         // connexion à la base de donnée
         include "../admin/db.php";
         $connexion = mysql_connect($adresse,$id,$pass)or die ('Error of connexion');
	     mysql_select_db($db)or die ('Selection de la base impossible');
		 // Insertion des éléments dans la base de donnée et redirection vers la page design
		 $requete ="INSERT INTO `propositions` ( `id` , `domaine` , `date` , `titre` , `image` ,`etat` )VALUES(NULL, '$domaine', '$date', '$titre', '$dest_fichier', 'ATTENTE')";
$result=mysql_query($requete)or die ('Erreur SQL !'.$requete.'<br />'.mysql_error());    
     header("location:../designpages/design.php?action=$domaine");
mysql_close();
   }
  } 
en local comme dossier de destination j'utilissais "../designpages/propositions et cela marche tres bien mais lorsque mon script est hébergé sur mon serveur web j'ai un message d'Erreur
Warning: move_uploaded_file(http/propos/gestion_projet_dev.jpg): failed to open stream: No such file or directory in /var/upload.php on line 37 Warning: move_uploaded_file(): Unable to move '/tmp/phpBdtUsu' to /designpages/propos/gestion_projet_dev.jpg' in /var/www/lhosts/progsuivi/designpages/upload.php on line 37 Warning: Cannot modify header information - headers already sent by (output started at /var/designpages/upload.php:37) in /var/upload.php on line 47 
J'ai d'abbord penser que cela était du à mon dossier de destination, donc j'ai utiliser un chemin complet avec www, mais j'ai toujours le meme soucis.