Modifier un fichier uploadé

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 : Modifier un fichier uploadé

Re: Modifier un fichier uploadé

par ghost5922 » 31 mai 2013, 10:35

Bonjour,

tu as un souci la
$image = "auditeur/".$nom."_".$prenom."/".$cv;
tu remets le chemin

Re: Modifier un fichier uploadé

par neokrios » 31 mai 2013, 08:26

Désolé de la réponse tardive je pense plutôt que ça vient d'ici

if(move_uploaded_file($_FILES['cv']['name'], $dossier . $image))

je pense qu'il ne prend pas le deuxième paramètre mais dans les deux cas je ne sais pas comment corriger mon erreur

Re: Modifier un fichier uploadé

par ghost5922 » 29 mai 2013, 15:52

Re,

il semble que ta variable $cv n'existe pas et la ligne 35 n'est pas la même sur le code que tu donne

je pense que cela vient d'ici $cv = $_POST["cv"] ;

if(isset($_POST["cv"]) and !empty($_POST["cv"])){ $cv = $_POST["cv"] ;}else{$cv='';}

Re: Modifier un fichier uploadé

par neokrios » 29 mai 2013, 15:48

Alors après plusieurs essai je suis arriver à ça
<?php
	$cnx = mysql_connect( "localhost", "root", "" ) ;
	$db  = mysql_select_db( "dematerialisation" ) ;
	
	$nom = $_POST["nomauditeur"] ;

  
	$prenom = $_POST["prenomauditeur"] ;
  
  
	$codeauditeur = $_POST["codeauditeur"] ;
  
	$cv = $_POST["cv"] ;

	$image = "auditeur/".$nom."_".$prenom."/".$cv;
 
	//récupération de l'identifiant de la personne:
	$codeauditeur = $_POST["codeauditeur"] ;
		
	//création de la requête SQL:
	$sql = "UPDATE auditeur SET nomauditeur = '".$nom."',prenomauditeur = '".$prenom."'  ,codeauditeur = '".$codeauditeur."' ,cv = '".$image."'  WHERE codeauditeur = '".$codeauditeur."'"; 
 
	//exécution de la requête SQL:
	$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
	//affichage des résultats, pour savoir si la modification a marchée:
	if($requete)
		
			{ 
				$dossier = "auditeur/".$nom."_".$prenom."/";
				//$upimg = basename($_FILES['cv']['name']);
			
				if(move_uploaded_file($_FILES['cv']['name'], $dossier . $image)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
					{
					echo 'Upload effectué avec succès !';
					}
				else //Sinon (la fonction renvoie FALSE).
				{
				echo 'Echec de l\'upload !';
				}
			}
		
		
		
	else
		{
			echo("La modification à échouée") ;
		}
?>
et j'obtiens encore une erreur je vais pas me plaindre avant j'avais rien d'affiché avant

Notice: Undefined index: cv in C:\xampp-portable\htdocs\cnam V4\test3.php on line 35
Echec de l'upload !

Re: Modifier un fichier uploadé

par ghost5922 » 29 mai 2013, 12:00

essaie de faire un echo deja pour savoir si le deplacement fonctionne ou pas
if(move_uploaded_file($_FILES[$fichier]['tmp_name'], $nom . $fcv)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
                                {
echo 'Image deplacer';
                                        return true;
                                }
                        else
                                {
echo 'Image non deplacer Erreur';
                                        return false;
                                }

Re: Modifier un fichier uploadé

par ghost5922 » 29 mai 2013, 11:55

non cela ne pause pas de problème mais si a l'insert ca marche c'est que tu dois avoir un souci avec la nouvelle image

Re: Modifier un fichier uploadé

par neokrios » 29 mai 2013, 11:15

Je comprend pas en quoi le nom de l'image est important vu que toute façon elle auront un nom différent ça pause pas de problème non?

Re: Modifier un fichier uploadé

par ghost5922 » 29 mai 2013, 11:03

ok alors renomme l'ancienne image en 'cv_'.time().'.jpg'; par exemple puis tu remets l'image sans rien change sur le ftp tu auras


Patrick_bruel/cv.jpg (nouvelle image)
Patrick_bruel/cv_45484214.jpg (ex image)

Re: Modifier un fichier uploadé

par neokrios » 29 mai 2013, 10:45

j'ai une table membre et je veux juste la garder dans le répertoire j'ai pas besoin de son chemin

Re: Modifier un fichier uploadé

par ghost5922 » 29 mai 2013, 10:42

ok mais tu veux garde cette ligne dans la bdd au cas ou juste sur le ftp ?

tu as une table juste pour les images ou c'est dans la table membre ?

Re: Modifier un fichier uploadé

par neokrios » 29 mai 2013, 10:38

je stock le chemin complet de l'image auditeur/$nomauditeur_$prenomauditeur/$image
Je ne renomme pas l'image du coup elle a un nom unique

Re: Modifier un fichier uploadé

par ghost5922 » 29 mai 2013, 10:35

Ok mais tu stock juste le chemin ou le nom complet de l'image en bdd

car si tes fichier se nomme toujours cv.jpg tu ne peu en avoir qu'un dans le rep Patrick_bruel

Re: Modifier un fichier uploadé

par neokrios » 29 mai 2013, 10:27

Non même pas en gros chaque image est stocker dans le répertoire d'un auditeur (exemple: carte vitale de patrick bruel et stocker dans le répertoire Patrick_bruel ainsi que toute les pièces autres pièces jointe de Patrick Bruel. Moi se que je voudrais c'est mettre le nouveau cv par exemple dans le répertoire de l'auditeur sans enlever l'ancien par contre que le chemin d’accès dans la base de donnée soit celle de la nouvelle image du coup sur le site on voit bien le nouveau cv car j'utilise le chemin stocké dans la base de donnée pour l'afficher mais si j'ai besoin de retrouver un document ancien j'ai juste a retourner dans le répertoire. Du coup j'arrive bien a mettre mon chemin dans la bdd sans problème met ma nouvelle ne se met pas dans le répertoire voulu. Du coup j'ai le chemin mais pas l'image qui va au bout.

Re: Modifier un fichier uploadé

par ghost5922 » 29 mai 2013, 10:16

Bonjour,

ce que tu souhaite faire c'est pas efface mais déplacé l'ancienne image avant de mettre la nouvelle ?

Re: Modifier un fichier uploadé

par neokrios » 29 mai 2013, 08:11

Alors j'ai essayer j'vais plein d'erreur mais je crois savoir d'ou ça vient. Mais je cherche un a faire plus simple, en effet mon but et de pouvoir garder dans le dossier de l'auditeur ses anciennes pièces jointes j'ai donc fais le code qui va suivre, je veux juste insérer dans le bon répertoire l'image uploadé et remplacé dans la bdd le nouveau chemin. J'arrive a remplacer par le bon chemin dans la bdd mais j'arrive pas a uploader l'image dans le bon répertoire mais je crois que je me suis un peu emmêlé les pinceaux dans mon code, le suivi:
<?php 
	function upload($fichier, $prenomauditeur, $nomauditeur)
{

	$fcv = basename($_FILES[$fichier]['name']);
	$taille_maxi = 100000000;
	$taille = filesize($_FILES[$fichier]['tmp_name']);
	$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.pdf');
	$extension = strrchr($_FILES[$fichier]['name'], '.'); 
	//Début des vérifications de sécurité...
	
		if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
		{
			$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
		}
		
		if($taille>$taille_maxi)
		{
			$erreur = 'Le fichier est trop gros...';
		}
		
		if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
		{
			//On formate le nom du fichier ici...
			$fcv = strtr($fcv, 
			  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
			  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
			$cv = preg_replace('/([^.a-z0-9]+)/i', '-', $fcv);
			if(move_uploaded_file($_FILES[$fichier]['tmp_name'], $nom . $fcv)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
				{
					return true;
				}
			else
				{
					return false;
				}

		}
		
			if (empty($FILES[$fichier])) 
		{
		return true;
		}	
}


	
	$nom = $_POST["nomauditeur"] ;
	$prenom = $_POST["prenomauditeur"] ;
	$codeauditeur = $_POST["codeauditeur"] ;
	$cv = $_POST["cv"] ;
	$image = "auditeur/".$nom."_".$prenom."/".$cv;
 
	//récupération de l'identifiant de la personne:
	$codeauditeur = $_POST["codeauditeur"] ;
	
	//connection au serveur
			$cnx = mysql_connect( "localhost", "root", "" ) ;
 
		//sélection de la base de données:
			$db  = mysql_select_db( "dematerialisation" ) ;
		
	//création de la requête SQL:
	$sql = "UPDATE auditeur SET nomauditeur = '".$nom."',prenomauditeur = '".$prenom."'  ,codeauditeur = '".$codeauditeur."' ,cv = '".$image."'  WHERE codeauditeur = '".$codeauditeur."'"; 
 
	//exécution de la requête SQL:
	$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
	//affichage des résultats, pour savoir si la modification a marchée:
	if($requete)
		{ 
			echo("Modification éffectué");
		}
		
		
	else
		{
			echo("La modification à échouée") ;
		}
		
?>