Problème pour uploader un pdf (php sous MVC)

Petit nouveau ! | 4 Messages

10 févr. 2023, 12:55

Bonjour je rencontre un problème sur l'upload de fichier sous format MVC, Le problème que je rencontre est que le fichier ne s'upload pas dans le dossier voulu, voici ce que j'ai fais :

controller :

Code : Tout sélectionner

function admin_edit($id=null) { if ($this->Session->isLogged()) { if (isset($_POST)){ if (!empty($_POST)){ echo "<PRE>"; print_r($_POST); echo "</PRE>"; echo "<PRE>"; print_r($_FILES); echo "</PRE>"; for($i=0;$i>1;$i++) { //echo "i :".$i."<br>"; echo "nom fichier téléchargé :".$_FILES["photo"]["name"][$i]."<br>"; echo "nom chemin upload :".$_FILES["photo"]["tmp_name"][$i]."<br>"; $_POST["photo".$i]=$_FILES["photo0"]["name"]; $im_src="webroot/img/".$_FILES["photo0"]["name"]; //renseigner le nom des photos téléchargées dans $_POST // les chargements des fichiers : move upload if (!move_uploaded_file($_FILES["photo0"]["tmp_name"], $im_src)) { $this->Session->setFlash("Téléchargement KO",'<i class="fas fa-times"></i>',"danger"); } } for($i=0;$i>1;$i++) { //echo "i :".$i."<br>"; echo "nom fichier téléchargé :".$_FILES["pdf"]["name"][$i]."<br>"; echo "nom chemin upload :".$_FILES["pdf"]["tmp_name"][$i]."<br>"; $_POST["pdf".$i]=$_FILES["pdf0"]["name"]; $pdf_src="webroot/files/".$_FILES["pdf0"]["name"]; //renseigner le nom des photos téléchargées dans $_POST // les chargements des fichiers : move upload if (!move_uploaded_file($_FILES["pdf0"]["tmp_name"], $pdf_src)) { $this->Session->setFlash("Téléchargement KO",'<i class="fas fa-times"></i>',"danger"); } } $this->formation->save($_POST); $this->Session->setFlash("Mise à jour ok",'<i class="fas fa-check"></i>'); //echo "RETOUR this->vehicule->->id:".$this->vehicule->id; $id=$this->formation->id; } if(!empty($id)){ $d['titre'] = "Modification "; $d['for'] = $this->formation->getFor($id); } else { $d['titre'] = "Ajout "; } $this->set($d); //je rends la vue admin_edit  $this->layout ='admin'; $this->render('admin_edit'); } else { echo "Veuillez partir s'il vous plait"; } } }
admin edit :

Code : Tout sélectionner

<p> <div class="mb-3"> <label for="formFile" class="form-label">Veuillez télécharger un pdf</label> <input class="form-control" name="pdf0" type="file" id="formFile"> </div> </p>
admin index :

Code : Tout sélectionner

echo "Ajouter une formation : <a href='/".WEBROOT2."/formations/admin_edit/'><i class='fa-sharp fa-solid fa-plus'></i></a>"; echo '<ul class="cards">'; foreach ($form as $f) { echo '<li>'; echo '<a href="/'.WEBROOT2.'/webroot/files/'.$f->pdf0.'" class="card">'; echo '<img src="/'.WEBROOT2.'/webroot/img/'.$f->photo0.'" class="card__image"/>'; echo '<div class="card__overlay">'; echo '<div class="card__header">'; echo '<svg class="card__arc" xmlns=""><path/></svg>'; echo '<div class="card__header-text">'; echo '<h3 class="card__title">'.$f->nomformation.'</h3>'; echo '<span class="card__status">Durée de la formation : '.$f->dureeformation.'</span>'; echo '</div>'; echo '</div>'; echo '<p class="card__description">DESCRIPTIF : '.$f->descriptif.'</p>'; echo '</div>'; echo '</a>'; echo '<a href="/'.WEBROOT2.'/formations/admin_delete/'.$f->id.'" onclick=\'return confirm("voulez-vous vraiment supprimer cette formation?");\'> <i class="far fa-trash-alt"></i></a><a href="/'.WEBROOT2.'/formations/admin_edit/'.$f->id.'"<i class="fa-sharp fa-solid fa-pencil"></i></a>'; echo '</li>'; } echo '</ul>';

Avatar du membre
Mammouth du PHP | 1609 Messages

10 févr. 2023, 15:14

Salut, que se passe-t-il exactement ? vous obtenez le message d'erreur sur le move_uploaded_file ?

Sinon je dirais soit le chemin n'est pas bon, soit le répertoire n'existe pas, soit le serveur web n'a pas les droits d'écriture sur le répertoire.
Développeur web depuis + de 20 ans

Petit nouveau ! | 4 Messages

10 févr. 2023, 17:10

Salut, que se passe-t-il exactement ? vous obtenez le message d'erreur sur le move_uploaded_file ?

Sinon je dirais soit le chemin n'est pas bon, soit le répertoire n'existe pas, soit le serveur web n'a pas les droits d'écriture sur le répertoire.
J'ai un not found "Not Found
The requested URL was not found on this server.

Apache/2.4.46 (Win64) PHP/7.3.21 Server at localhost Port 80"
Pourtant je ne vois pas d'erreur sur mon chemin, le pdf ne va pas dans le dossier files

Avatar du membre
Mammouth du PHP | 1609 Messages

10 févr. 2023, 18:33

Sur quelle url le not found ?
Développeur web depuis + de 20 ans

Petit nouveau ! | 4 Messages

10 févr. 2023, 19:03


Petit nouveau ! | 4 Messages

11 févr. 2023, 12:15

Sur quelle url le not found ?
[*]http://localhost/Jean-Monnet/webroot/fi ... _norme.pdf[*]