Aller au contenu

[Résolu]Upload de fichier dans dossier web via fonction php

Featured Replies

Posté(e)

Bonjour,

J'essaie d'uploader un fichier sur un site internet hébergé sur le NAS. A priori, le dossier d'Upload possède les droits en lecture et écriture.

 

Le site tourne avec Apache 2.4, PHP7.3. Sous webstation, je pense avoir saisi les bonnes extensions pour le serveur distant.

 

Voici la fonction php. Quelqu'un aurait-il une idée svp ?

<?php
if(isset($_POST['envoyerphoto'])){
         $dossier = "upload/" . $_SESSION['id'] . "/";   
          if(!is_dir($dossier)){
            mkdir($dossier);
          }
     $fichier = basename($_FILES['avatar']['name']);

     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)){

      if(file_exists($dossier . $SESSION['avatar']) && isset($SESSION['avatar'])){
        unlink($dossier . $SESSION['avatar']);
      }
      $req=$DB->prepare("UPDATE part_profil SET avatar = ? WHERE id = ?");
      $req->execute(array($fichier, $_SESSION['id']));
      $_SESSION['avatar'] = $fichier;

          header('Location: profil.php');
                exit;
     }
     else 
     {
          header('Location: profil.php');
                exit;
     }

 

Merci pour votre aide,

Posté(e)

J'utilise file_put_contents pour ramener un fichier du net sur mon nas:

$file_gc = file_get_contents($url);
file_put_contents($fname, $file_gc);

  • 2 semaines après...
Posté(e)
  • Auteur

Hey @cadkey, merci pour ton retour 😃

J'ai essayé mais sans issue. Cela peut-il provenir de l'adresse de mon fichier "upload/" ? Ne faut-il pas y indiquer l'ip du NAS avant ? Pour cette optin je ne pense pas puisque j'arrive à y créer des fichiers en php.

J'avoue que je sèche un peu... Si tu as plus d'infos sur ton paramétrage ou une page de code php pour que j'essaie je suis preneur stp.

Merci néanmoins pour cette première info, c'est sympa ☺️!

@ +👋🍹

 

 

Posté(e)

Quel est le résultat produit par ton code ?

As-tu activé l'affichage des erreurs PHP afin d'identifier le problème ?

Posté(e)
  • Auteur

Merci @DaffY et @PiwiLAbruti , effectivement je n'utilise pas la fonction upload_tmp_dir mais move_uploaded_file().

J'ai utilisé un printr($_FILES) ce qui me donne

Array ( [avatar] => Array ( [name] => 2021-11-15_12h51_24.jpg [type] => image/jpeg [tmp_name] => /volume1/@tmp/phpNKOlJP [error] => 0

J'ai remarqué entre 2 que j’avais des soucis de syntaxe...il manquait "underscore" sur certains

$_SESSION

MIRACLE....ça marche !!! 🍺

Ps : faut-il ajouter un bout de code type phpinfo() pour les afficher svp ? ☺️

 

MERCI à tous les 2 !! Vous m'avez re-motivés et mis sur les rails !! 🤩

Modifié par Chaandgus

  • 1 mois après...
Posté(e)

Le problème est maintenant résolu. N'hésitez pas à ouvrir un nouveau message en cas de problème. Ceci est une réponse automatique.

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.