Quelqu'un aurait il déjà fait la modification de ce tut qui changerai le nom des fichiers à envoyer par un nom donné dans un input?
Donc j'envoie des fichiers qui s'appelle photo.jpg, photo2.jpg et photo3.jpg en fonction d'un input qui donne réalisation2 ce qui fait qu'on aurait réalisation2.jpg, réalisation2.pdf, réalisation2.eps.
Ceci évitera qu'on efface des fichiers vu qu'un test est fait pour voir si le nom entré dans l'input existe déjà dans la base de données.
Voici le code d'envoie et d'enregistrement
//Enregistre
if(isset ($_POST['submit_add'])){
if(verifform()){
//add image de base
if(isset($_FILES['image']))
{
// params
unset($erreur);
$extensions_ok_image = array('jpg', 'jpeg', 'JPG');
$taille_max_image = 200000;
$dest_dossier_image = $_SERVER['DOCUMENT_ROOT'].'/etstudio/images/base/';
// vérifications
if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extensions_ok_image ) )
{
$erreur = 'Veuillez sélectionner un fichier de type jpg !';
}
elseif( file_exists($_FILES['image']['tmp_name'])
and filesize($_FILES['image']['tmp_name']) > $taille_max_image)
{
$erreur = 'Votre fichier doit faire moins de 200Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier_image = basename($_FILES['image']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier_image = strtr($dest_fichier_image, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier_image = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier_image);
// copie du fichier
move_uploaded_file($_FILES['image']['tmp_name'], $dest_dossier_image . $dest_fichier_image);
}
//add image detail
if(isset($_FILES['detail']))
{
// params
unset($erreur);
$extensions_ok_detail = array('jpg', 'jpeg', 'JPG');
$taille_max_detail = 200000;
$dest_dossier_detail = $_SERVER['DOCUMENT_ROOT'].'/etstudio/images/detail/';
// vérifications
if( !in_array( substr(strrchr($_FILES['detail']['name'], '.'), 1), $extensions_ok_detail ) )
{
$erreur = 'Veuillez sélectionner un fichier de type jpg !';
}
elseif( file_exists($_FILES['detail']['tmp_name'])
and filesize($_FILES['detail']['tmp_name']) > $taille_max_detail)
{
$erreur = 'Votre fichier doit faire moins de 200Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier_detail = basename($_FILES['detail']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier_detail = strtr($dest_fichier_detail, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier_detail = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier_detail);
// copie du fichier
move_uploaded_file($_FILES['detail']['tmp_name'], $dest_dossier_detail . $dest_fichier_detail);
}
//add image detail2
if(isset($_FILES['detail2']))
{
// params
unset($erreur);
$extensions_ok_detail2 = array('jpg', 'jpeg', 'JPG');
$taille_max_detail2 = 200000;
$dest_dossier_detail2 = $_SERVER['DOCUMENT_ROOT'].'/etstudio/images/detail2/';
// vérifications
if( !in_array( substr(strrchr($_FILES['detail2']['name'], '.'), 1), $extensions_ok_detail2 ) )
{
$erreur = 'Veuillez sélectionner un fichier de type jpg !';
}
elseif( file_exists($_FILES['detail2']['tmp_name'])
and filesize($_FILES['detail2']['tmp_name']) > $taille_max_detail2)
{
$erreur = 'Votre fichier doit faire moins de 200Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier_detail2 = basename($_FILES['detail2']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier_detail2 = strtr($dest_fichier_detail2, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier_detail2 = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier_detail2);
// copie du fichier
move_uploaded_file($_FILES['detail2']['tmp_name'], $dest_dossier_detail2 . $dest_fichier_detail2);
}
}
}
}
//ADD Oeuvre
$oeuvre_name = trim($_POST['oeuvre_name']);
$legende = trim($_POST['legende']);
$pub = trim($_POST['pubList']);
$date = trim($_POST['date']);
$query_add_oeuvre = "INSERT INTO t_oeuvre VALUES ('','$oeuvre_name','$dest_fichier_image','$legende',";
if(empty($dest_fichier_detail) && empty($dest_fichier_detail2)){
$query_add_oeuvre .= "'','','$date','$pub')";
}elseif (isset($dest_fichier_detail) && empty($dest_fichier_detail2)){
$query_add_oeuvre .= "'$dest_fichier_detail','','$date','$pub')";
}elseif (empty($dest_fichier_detail) && isset($dest_fichier_detail2)){
$query_add_oeuvre .= "'','$dest_fichier_detail2','$date','$pub')";
}else{
$query_add_oeuvre .= "'$dest_fichier_detail','$dest_fichier_detail2','$date','$pub')";
}
mysql_query($query_add_oeuvre) or die("Ajout d'oeuvre : ".mysql_error());
//ADD Table Intermédiaire pour la Catégorie
$cat = trim($_POST['catId']);
$last_oeuvre = mysql_insert_id();
$query_add_int_cat = "INSERT INTO t_oeuvre_cat VALUES ('$cat','$last_oeuvre')";
mysql_query($query_add_int_cat) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
//ADD Table Intermédiaire pour l'Expo (projet)
if (empty($_POST['expo_add'])){
$expoList = trim($_POST['expoList']);
$query_add_int_expo = "INSERT INTO t_oeuvre_expo VALUES ('$expoList','$last_oeuvre')";
mysql_query($query_add_int_expo) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
}
else{
$expo_add = trim($_POST['expo_add']);
$query_new_expo = "INSERT INTO t_expo VALUE ('','$expo_add')";
mysql_query($query_new_expo) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
$last_expo = mysql_insert_id();
$query_add_int_expo = "INSERT INTO t_oeuvre_expo VALUES ('$last_expo','$last_oeuvre')";
mysql_query($query_add_int_expo) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
}
}
}
Voici le formulaire
<form id="add1" method="post" enctype="multipart/form-data" name="add_oeuvre" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Obligatoire:<br />
<p>
<label>Légende*:</label>
</p>
<textarea name="legende" cols="50" rows="5"></textarea>
<p>
<label>Date*:</label>
<input name="date" type="text" size="4" maxlength="4" />
</p>
<p>
<label>Création*:</label>
<input name="image" type="file" />
</p>
Facultatif:<br />
<p>
<label>Détail:</label>
<input name="detail" type="file" />
</p>
<p>
<label>Détail:</label>
<input name="detail2" type="file" />
</p>
<p>
<label>Publication:</label>
<select name="pubList">
<option value="y">Oui</option>
<option value="n">Non</option>
</select>
</p>
Projet:<br />
<p>
<label>Sélectionnez un Projet:</label>
<select name="expoList">
<option value=""></option>
<?php $expoList = listExpo();
foreach($expoList as $key=>$val){
echo '<option value="'.$key.'"';echo '>'.$val['nom']."</option>\n";
}
?>
</select>
</p>
<p>
<label>Ajoutez un Projet:</label>
<input name="expo_add" type="text" />
</p>
<input name="catId" type="hidden" value="<?php echo $_POST['catId']; ?>" />
<input name="oeuvre_name" type="hidden" value="<?php echo $_POST['oeuvre_name']; ?>" />
<input name="submit_add" type="submit" value=" Enregistrer " />
<input name="submit_centre" type="submit" value=" Centre de ressources " />
</form>
Si ça a deja été fait un lien vers le sujet me suffit. Merci
@+
Kev