Remplacement de fichiers uploadés ?

@ybee

Membre expert
Club iGen
18 Mai 2001
1 039
14
42
Embourg, Belgique
antoine.olbrechts.eu
Hello à tous!

Je suis en train de mettre en place un système de publication de résultats de tournoi sur un site que je viens de créer ( www.tcembourg.be )

Tous les soirs, un juge-arbitre va uploader les tableaux en jpg via un formulaire que j'ai créé, et il faudrait que le nouveau fichier envoyé remplace le précédent qui y était, et qui porte le meme nom...

À titre d'info, j'ai ceci pour le moment :

Bloc de code:
// Copie du fichier dans le répertoire resultats
						
if($prequalif1_name !="")
{
copy ("$prequalif1", "/home/tce/public_html/resultats/$prequalif1_name")
         or die("Impossible de copier le fichier");
}
else { echo '<br />Pas de nouveau tableau Préqualif 1 : OK'; }

if($prequalif2_name !="")
{
copy ("$prequalif2", "/home/tce/public_html/resultats/$prequalif2_name")
         or die("Impossible de copier le fichier");
}
else { echo '<br />Pas de nouveau tableau Préqualif 2 : OK'; }

if($qualif_name !="")
{
copy ("$qualif", "/home/tce/public_html/resultats/$qualif_name")
         or die("Impossible de copier le fichier");
}
else { echo '<br />Pas de nouveau tableau Qualif : OK'; }

if($final_name !="")
{
copy ("$final", "/home/tce/public_html/resultats/$final_name")
         or die("Impossible de copier le fichier");
}
else { echo '<br />Pas de nouveau tableau Final : OK'; }



Comment mettre en place ce système d'écriture sur le fichier existant ? Est-ce possible ?

Merci pour vos lumières ;-)
 
unlink($file); ?

shell_exec("rm ".$file);

ou alors le faite de le reécraser ca le detruit non ?

ya quoi dans ces variables locale $prequalif1_name ?

isset ?
 
shell_exec('rm /www/upload/file/*');

ou unlink('/home/tce/public_html/resultats/'.$prequalif1_name);

tes fichiers uploadés devraient être sous ton htdocs


if(is_file('/www/upload/tableau.jpeg')){

unlink('/www/upload/tableau.jpeg');
move_uploaded_file ( string filename, string destination);
}
 
  • J’aime
Réactions: @ybee
Truc du genre ?

if($prequalif1_name !="")
{
shell_exec('rm /home/tce/public_html/resultats/$prequalif1_name');
copy ("$prequalif1", "/home/tce/public_html/resultats/$prequalif1_name")
or die("Impossible de copier le fichier");
}
else { echo '<br />Pas de nouveau tableau Préqualif 1 : OK'; }


(je vais tester now)
 
utilises move_upload_file
et unlink

si ca ne va pas utilises un shell_exec

pour des raisons de portabilité
essaye d'utiliser les objets internes au language
:p

Bloc de code:
<?PHP

# Copyright (C) 2004 OpenSpecies
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; or any later version.
#

Class postFile{

	function postFile(){
		
		for($i=0;$i<func_num_args();$i++){
			$arg[]=@func_get_arg($i);
		}
	
		$this->from=$arg[0];
		$this->to=$arg[1];
		
		$this->stream=$_FILES[$this->from];
	}
	
	function isUploaded(){
		if(is_uploaded_file($this->stream["tmp_name"])){
			return true;
		}
		return false;
	}
	
	function getMove(){
		move_uploaded_file($this->stream["tmp_name"],$this->to.$this->stream["name"]);
	}
	
	function getCHmod(){
	
		for($i=0;$i<func_num_args();$i++){
			$arg[]=@func_get_arg($i);
		}
	
		$this->newMod=$arg[0];
		
		chmod($this->to.($this->changeName ? $this->newName : $this->stream["name"]),$this->newMod);
	}
	
	function getBZ2(){
	
		$of=fopen($this->to.($this->changeName ? $this->newName : $this->stream["name"]),"r");
		$rf=fread($of,filesize($this->to.($this->changeName ? $this->newName : $this->stream["name"])));
		
		$bz=bzopen($this->to.($this->changeName ? $this->newName : $this->stream["name"]).".bz2","w");
		
		bzwrite($bz,$rf);
		bzclose($bz);
		
		unlink($this->to.($this->changeName ? $this->newName : $this->stream["name"]));
	}
	
	function getRename(){
	
		for($i=0;$i<func_num_args();$i++){
			$arg[]=@func_get_arg($i);
		}
	
		$this->newName=$arg[0];
		
		rename($this->to.$this->stream["name"],$this->to.$this->newName);
		
		$this->changeName=true;
	}
	
	function getSize(){
		return $this->stream["size"];
	}
	
	function getMimeType(){
		return $this->stream["type"];
	}
	
	function getTmpName(){
		return $this->stream["tmp_name"];
	}
	
	function getName(){
		return $this->stream["name"];
	}
	
	function getError(){
		return $this->stream["error"];
	}
	
}

?>


Bloc de code:
if(!$error){
				require_once "../"._LIB._FNDTION."postFile.php";
				
				$f=new postFile(
									"fileCVName",
									"../"._SHARED."jobs/tmp/"
									); 
			}
			
			if(!$error){
				if($f->getSize() > 0){
					$exist=true;
					$error=false;
				}else{
					$error=true;
					$msg="<span style=\"font-size:10px;font-family:Helvetica,sans-serif;color:red;background-color:yellow\">Veuillez choisir une pi&egrave;ce-jointe</span>";
				}
			}
			
			if(!$error){
				if(strlen($f->getMimeType()) > 0 && ($f->getMimeType()=="application/msword" || $f->getMimeType()=="text/plain" || $f->getMimeType()=="text/rtf")){
					$myme=true;
					$error=false;
				}else{
					$error=true;
					$msg="<span style=\"font-size:10px;font-family:Helvetica,sans-serif;color:red;background-color:yellow\">Ne nous pouvons valider le format de votre pi&egrave;ce-jointe</span>";
				}
			}
			
			if(!$error){
				if($f->getSize() < 50001){
					$size=true;
					$error=false;
				}else{
					$error=true;
					$msg="<span style=\"font-size:10px;font-family:Helvetica,sans-serif;color:red;background-color:yellow\">Votre pi&egrave;ce-jointe a un poids sup&eacute; &agrave; 50 Ko</span>";
				}
			}
			
			if(!$error){
				
				$cvID=getCVID();
				
				$f->getMove();
				$f->getRename($cvID.".".substr($f->getName(),-3));
				$f->getCHmod(0444);
				$f->getBZ2();
				
				$my->query(
								"insert into "._MySQL_ApplicationDB.".cv_recorded"
								." (lastname,firstname,email,iso_code,j_activity,j_zone,j_type,j_date,j_ddate,ref_cv)"
								." values('"
								.addslashes($_POST["lastname"])."','"
								.addslashes($_POST["firstname"])."','"
								.addslashes($_POST["email"])."','"
								.$_POST["j_country"]."','"
								.$_POST["j_activity"]."','"
								.$_POST["j_zone"]."','"
								.$_POST["j_type"]."','"
								.date("dmy")."','"
								.(time()+(60*60*24*35))."','"
								.$cvID
								."')"
						);
					
				$msg="<span style=\"font-size:10px;font-family:Helvetica,sans-serif;color:red;background-color:yellow\">Demande d'inscription effectu&eacute;e.</span>";
				
			}