Bonjour,

Voila je rencontre un petit problème avec l'envoi de fichier grace a un formulaire.

Ce que je fais

Enfaite, j'essayer d'envoyer des images dans un dossier grace un formulaire, tout fonctionne sauf que une fois sur deux sa marche pas, en faite c'est tres compliqué a expliquer, je vous mets des screens pour mieux comprendre

Formulaire :

<?php require('../../php/db.php'); ?>
<?php
function random($car) {
$string = "";
$chaine = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
srand((double)microtime()*1000000);
for($i=0; $i<$car; $i++) {
$string .= $chaine[rand()%strlen($chaine)];
}
return $string;
}
$code_aleatoire = random(8);
if(isset($_POST['add_album'])) {
  $nom_albums = $_POST['nom_albums'];
  $bio_albums = $_POST['bio_albums'];
  $date_albums = $_POST['date_albums'];
  $artistes_id = $_POST['artistes_id'];
  $prix_albums = $_POST['prix_albums'];
  $deezer_albums = $_POST['deezer_albums'];
  $itunes_albums = $_POST['itunes_albums'];
  $android_albums = $_POST['android_albums'];
    function caractereValideUrl($string) {
        $string= strtr($string,
            "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
            "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");

        // Mettez ici les caractères spéciaux qui seraient susceptibles d'apparaître dans les titres. La liste ci-dessous est indicative.
        $speciaux = array("?","!","@","#","%","&amp;","*","(",")","[","]","=","+"," ",";",":","'",".","_",",","@");
        $string = str_replace($speciaux, "", $string); // Les caractères spéciaux dont les espaces, sont remplacés par un tiret.
        $string = strtolower(strip_tags($string));

        return $string;
    }
$nom_albums_rpl = caractereValideUrl($nom_albums);
if(isset($_FILES['image_albums']) AND !empty($_FILES['image_albums']['name']))
  {
    $tailleMax = 7097152;
    $extensionsValides = array('jpg', 'jpeg');
    if($_FILES['image_albums']['size'] <= $tailleMax)
    {
      $extensionUpload = strtolower(substr(strrchr($_FILES['image_albums']['name'], '.'), 1));
      if(in_array($extensionUpload, $extensionsValides))
      {
        $chemin = "../../images/albums/".$code_aleatoire."-".$nom_albums_rpl.".".$extensionUpload;
        $resultat = move_uploaded_file($_FILES['image_albums']['tmp_name'], $chemin);
       if($resultat)
        {
  $add_albums = $bdd->prepare('INSERT INTO albums(nom_albums, image_albums, bio_albums, date_albums, artistes_id, prix_albums, deezer_albums, itunes_albums, android_albums, url_albums) VALUES(?,?,?,?,?,?,?,?,?,?)');
  $add_albums->execute(array($nom_albums, $code_aleatoire."-".$nom_albums_rpl.".".$extensionUpload, $bio_albums, $date_albums, $artistes_id, $prix_albums, $deezer_albums, $itunes_albums, $android_albums, $nom_albums_rpl));
  header('Location: ../listes/albums.php');

        }
      }
     } 
   }
  }
?>
                              <form method="POST" action="" class="form-horizontal" autocomplete="off" enctype="multipart/form-data">
                                 <div class="form-group">
                                    <label class="col-sm-2 control-label">Nom de l'album</label>
                                        <div class="col-sm-10">
                                           <input type="text" name="nom_albums" class="form-control">
                                        </div>
                                 </div>
                                    <div class="hr-dashed"></div>
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label">Choisir une categorie</label>
                                        <div class="col-sm-10">
                                            <select name="artistes_id" class="form-control">
                                            <?php
                                            $artistes_req = $bdd->query("SELECT * FROM artistes ORDER BY nom_artistes ASC");
                                            while($artistes = $artistes_req->fetch())
                                                {
                                            ?>
                                                <option value="<?= $artistes['id_artistes']; ?>"><?= $artistes['nom_artistes']; ?></option>
                                            <?php } ?>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="hr-dashed"></div>
                                    <div class="form-group">
                                    <label class="col-sm-2 control-label">Date de sortie de l'album (ex.: dd-mm-yyyy)</label>
                                        <div class="col-sm-10">
                                           <input type="text" name="date_albums" class="form-control">
                                        </div>
                                 </div> 
                                 <div class="hr-dashed"></div>
                                 <div class="form-group">
                                    <label class="col-sm-1 control-label"><i class="fa fa-spotify"></i></label>
                                        <div class="col-sm-3">
                                           <input type="text" name="deezer_albums" class="form-control">
                                        </div>
                                        <label class="col-sm-1 control-label"><i class="fa fa-apple"></i></label>
                                        <div class="col-sm-3">
                                           <input type="text" name="itunes_albums" class="form-control">
                                        </div>
                                        <label class="col-sm-1 control-label"><i class="fa fa-android"></i></label>
                                        <div class="col-sm-3">
                                           <input type="text" name="android_albums" class="form-control">
                                        </div>
                                 </div>
                                 <div class="hr-dashed"></div>
                                 <div class="form-group">
                                        <label class="col-sm-1 control-label">Prix de l'album</label>
                                        <div class="col-sm-2">
                                           <input type="text" name="prix_albums" class="form-control">
                                        </div>
                                        <label class="col-sm-2 control-label">Cover de l'album</label>
                                        <div class="col-sm-7">
                                           <input id="input" name="image_albums" type="file">
                                        </div>
                                 </div>
                                <div class="hr-dashed"></div>
                                <div class="form-group">
                                <label class="col-sm-2 control-label">Bio de l'album</label>
                                        <div class="col-sm-10">
                                <textarea id="editor1" name="bio_albums" rows="10" cols="80" style="visibility: hidden; display: none;"></textarea> 
                                </div>
                                </div>
                                <div class="hr-dashed"></div>
                            <button class="btn btn-primary" name="add_album" type="submit">Enrengistrer</button>
                        </form>

Ce que je veux

Je voudrais réussir a envoyer mes images dans le dossier

Ce que j'obtiens

Quand sa marche pas, le fichier s'envoi dans le dossier voulu, la table se créer dans la base de donnée, mais, le probleme c'est quand je regarde l'image depuis le site voila s qu'il s'affiche :

http://img4.hostingpics.net/pics/690039Sanstitre2.jpg

En gros il me dit que le chemin n'est pas juste, en gros que l'image est introuvable, mais toutes les autres images s'affiche, et l'image est bel et bien dans le dossier

5 réponses


Abdi Farah
Auteur
Réponse acceptée

Probleme résolu cetait du a l'URL Rewriting de mon htaccess que j'avais fais !
Merci quand même.

Quel est le chemin qui s'affiche dans la balise <img> de cette image ? (Regardes via l'inspecteur de ton navigateur)

<img src="../../images/albums/3VC23FO2-mzmusicvol3.jpg" width="50px" height="50px">

:/ c'est le bon chemin depuis mon espace administration

C'est balot de bloquer à 95% du but juste sur un chemin
essaye de mettre un chemin relatif à la racine

<img src="/met_ici_ce qui_manque/images/albums/3VC23FO2-mzmusicvol3.jpg" width="50px" height="50px">

Merci, Huggy, mais le probleme est résolu ;).