J'ai trouvé sur le net un script d'upload de fichier qui fonctionne à merveille.
Ce script m'enregistre tout ce qu'il me faut dans ma bdd.
Mon soucis est que lorsque je veux modifier un de mes fichiers uploadé j'ai un soucis avec
unlink() je n'arrive pas à supprimer l'ancien fichier.
Vous trouverez ci joint mes 2 scripts
le 1° script d'upload
Le 2° script de modif.
script d'upload
<?
$formulaire = TRUE;
define("ANNONCES",TRUE);
@require("functions.php");
if (isset($_SESSION["coordonnees"]["id"]))
{
//Début des informations à modifier
$poids_max=1048576; //Poids maximal du fichier en octets
$extensions_autorisees=array('doc','DOC','xls','XLS','pdf','PDF'); //Extensions autorisées
function getName($pre,$name_file,$post)
{
$time1=microtime();
$time2=str_replace(array(' ','.'),'',$time1);
$time=substr($time2, 0, 5);
$cle=mt_rand(0,9);
return $pre.$name_file.$time.$cle.'.'.$post;
}
if ((isset($_FILES["fichier"])) AND
(isset($_POST["description_text"])) AND
(isset($_POST["referentiel_product"])))
{
$alert_inscription = "";
//poid du fichier
if($_FILES['fichier']['size']>$poids_max)
{
$alert_inscription='Le fichier est trop lourd !';
}
//description
if (empty($_POST["description_text"]))
{
$_POST["description_text"] = "";
$alert_inscription = "<span class=Style90>Vous devez écrire une déscription light<br>pour votre document !<br></span>";
}
//famille de produits
if (replace_quot($_POST["referentiel_product"]) < 1)
{
$_POST["referentiel_product"] = "";
$alert_inscription .= "<span class=Style90>Le thème selectionné est incorrecte !<br></span>";
}
if(empty($alert_inscription))
{
$formulaire = FALSE;
if ($_FILES['fichier']['tmp_name'] != "")
{
$test_fichier = 1;
}
else
{
$test_fichier = 0;
}
$_query = "INSERT INTO referentiel_t (referentiel_t_id_membre,referentiel_t_site,referentiel_t_controleur_nom,referentiel_t_controleur_prenom,referentiel_t_service,
referentiel_t_fichier,referentiel_t_nomfichier,referentiel_t_description,referentiel_t_referentiel,referentiel_t_date) VALUES ("
."'".$_SESSION["coordonnees"]["id"]."',"
."'".$_SESSION["coordonnees"]["site_appartenance"]."',"
."'".$_SESSION["coordonnees"]["nom"]."',"
."'".$_SESSION["coordonnees"]["prenom"]."',"
."'".$_SESSION["coordonnees"]["service"]."',"
."'".$test_fichier."',"
."'".replace_quot($_FILES['fichier']['name'])."',"
."'".replace_quot($_POST["description_text"])."',"
."'".replace_quot($_POST["referentiel_product"])."',"
."'".date("Y-m-d", mktime(0, 0, 0, date("m"), date("j"), date("Y")))."')";
$result = mysql_query($_query)or die(mysql_error());
$id_fichier = mysql_insert_id();
if (($result != FALSE) AND ($id_fichier != FALSE))
{
if ($test_fichier == 1)
{
// Si upload OK alors on affiche le message de réussite
$name_fichier=$_FILES['fichier']['name'];
$extension_upload=substr(strrchr($_FILES['fichier']['name'], '.') ,1);
$name_file1=substr($name_fichier, 0, strrpos($name_fichier, '.'));
$caracteres = array('\'', ' ', '\\', '*', '%', 'ù', ';', ',');
$name_file=str_replace($caracteres, '', $name_file1);
if(in_array($extension_upload,$extensions_autorisees))
{
$nom=getName('../outils/doc_ref/',$name_file,$extension_upload);
move_uploaded_file($_FILES['fichier']['tmp_name'],$nom);
$alert_inscription ='<span class=Style90><center>Votre réferentiel à été uploadé.<br>
Vous pouvez le modifier ou le supprimer à votre convenance.<br>
Il est disponible à l\'adresse suivante :<br /><a target= blank href="'.$nom.'">'.$nom.'</a></span>';
}
else
{
$alert_inscription = "<span class=Style90>L'ajout en base de données a échoué !<br>Merci d'en avertir le webmaster</span>"; }
}
}
}
}
?>
script de modif.<?
$formulaire = TRUE;
define("ANNONCES",TRUE);
@require("functions.php");
if (isset($_SESSION["coordonnees"]["id"]))
{
//Début des informations à modifier
$poids_max=1048576; //Poids maximal du fichier en octets
$extensions_autorisees=array('doc','DOC','xls','XLS','pdf','PDF'); //Extensions autorisées
function getName($pre,$name_file,$post)
{
$time1=microtime();
$time2=str_replace(array(' ','.'),'',$time1);
$time=substr($time2, 0, 5);
$cle=mt_rand(0,9);
return $pre.$name_file.$time.$cle.'.'.$post;
}
if (isset($_GET['id']))
{
$_SESSION["id_referentiel"] = replace_quot($_GET['id']);
}
elseif (!isset($_SESSION["id_referentiel"]))
{
$_SESSION["id_referentiel"] = 0;
}
$query = "SELECT * FROM referentiel_t WHERE referentiel_t_id='".$_SESSION["id_referentiel"]."' AND referentiel_t_id_membre='".$_SESSION["coordonnees"]["id"]."'";
$result_query = mysql_query($query);
if (mysql_num_rows($result_query) == 1)
{
$mysql_result_query = mysql_fetch_array($result_query);
if ((isset($_POST["description_text"])) AND
(isset($_POST["referentiel_product"])))
{
$alert_inscription = "";
//poid du fichier
if($_FILES['fichier']['size']>$poids_max)
{
$alert_inscription='Le fichier est trop lourd !';
}
//description
if (empty($_POST["description_text"]))
{
$_POST["description_text"] = "";
$alert_inscription = "<span class=Style90>Vous devez écrire une déscription light<br>pour votre document !<br></span>";
}
//famille de produits
if (replace_quot($_POST["referentiel_product"]) < 1)
{
$_POST["referentiel_product"] = "";
$alert_inscription .= "<span class=Style90>Le thème selectionné est incorrecte !<br></span>";
}
if(empty($alert_inscription))
{
$formulaire = FALSE;
$test_fichier = 1;
if($mysql_result_query["referentiel_t_fichier"] == "1")
{
unlink($nom);
$test_fichier = 1;
}
}
$_query = "UPDATE referentiel_t SET ";
$_query .= "referentiel_t_description='".replace_quot($_POST["description_text"])."',";
$_query .= "referentiel_t_nomfichier='".replace_quot($_FILES['fichier']['name'])."',";
if ($test_fichier != 1) $_query .= "referentiel_t_fichier='".$test_fichier."',";
$_query .= "referentiel_t_referentiel='".replace_quot($_POST["referentiel_product"])."'";
$_query .= " WHERE referentiel_t_id='".$_SESSION["id_referentiel"]."' ";
$mysql_test = mysql_query($_query);
if ($mysql_test != FALSE)
{
if($test_fichier = 1)
{
// Si upload OK alors on affiche le message de réussite
$name_fichier=$_FILES['fichier']['name'];
$extension_upload=substr(strrchr($_FILES['fichier']['name'], '.') ,1);
$name_file1=substr($name_fichier, 0, strrpos($name_fichier, '.'));
$caracteres = array('\'', ' ', '\\', '*', '%', 'ù', ';', ',');
$name_file=str_replace($caracteres, '', $name_file1);
if(in_array($extension_upload,$extensions_autorisees))
{
$nom=getName('../outils/doc_ref/',$name_file,$extension_upload);
move_uploaded_file($_FILES['fichier']['tmp_name'],$nom);
$alert_inscription ='<span class=Style90><center>Votre réferentiel à été uploadé.<br>
Vous pouvez le modifier ou le supprimer à votre convenance.<br>
Il est disponible à l\'adresse suivante :<br /><a target= blank href="'.$nom.'">'.$nom.'</a></span>';
}
else
{
$alert_inscription = "<span class=Style90>L'ajout en base de données a échoué !<br>Merci d'en avertir le webmaster</span>"; }
}
}
}
}
?>
Merci de m'aiderFrancis