IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Infos sur les fichiers uploadés


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut Infos sur les fichiers uploadés
    Bonjour,

    J'ai fais un petit système d'upload de fichiers. Il fonctionne et j'arrive à lister les fichiers uploadés.
    Mais je ne sais pas comment obtenir l'url des fichiers (pour les télécharger), ou la taille, le nom...


    La fonction d'upload :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      public function uploadFilePost(Request $request){
          $request->validate([
              'fileToUpload' => 'required|file|max:50|mimes:jpeg,pdf,txt,odt,png',
          ]);
     
          $fileName = "fileName".time().'.'.request()->fileToUpload->getClientOriginalExtension();
          $request->fileToUpload->storeAs('uploads',$fileName);
     
          return back()
              ->with('success','Fichier envoyé.');
    }

    La fonction qui affiche la page et où j'essaye d'afficher les infos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
      public function uploadFile(Request $request){
     
        $url = Storage::url('fileToUpload');
        $path = Storage::disk('public')->path('files');
     
        $files_with_size = array();
        $files = Storage::files('uploads');
        foreach ($files as $key => $file) {
          $files_with_size[$key]['name'] = $file;
        }
     
        return view('uploadfile', [
            'files' => $files,
            'url' => $url,
            'path' => $path
          ]);
        }
    Ces 2 fonctions sont dans le même controller.

    Et la route dans web.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /* file upload */
    Route::get('uploadfile', 'Controller@uploadfile')->name('uploadfile');
    Route::post('uploadfile','Controller@uploadFilePost')->name('post.uploadfile');
    Je ne comprends pas trop comment obtenir les infos sur les fichiers, stockés en local sur le serveur.
    Quelqu'un pour m'aider à comprendre svp ?
    Merci d'avance ;-)

    ANDRE Ani

  2. #2
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Yep

    Normalement, tu doit en parallèle enregistrer les noms des fichiers dans la base de données pour les identifier par après. Par exemple les photos d'un produit, article, ou tout simplement pour des fichiers génériques. Voici le pseudo code ci-dessous :

    Dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php artisan make:model UploadedFile
    Contrôleur qui affiche les fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function showFiles()
    {
      $files = UploadedFile::all();
     
      return view('files.list')->with('files', $files);
    }
    files/list.blade.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @foreach ( $files as $file )
      <a href="{{ url('files/'.$file->name) }}">{{ $file->name }}</a><br>
    @endforeach
    Edit :
    Lorsque tu upload le fichier, en même temps tu dois créer le UploadedFile dans la base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $uploaded_file = new UploadedFile();
    $uploaded_file->name = 'nom-du-fichier';
    $uploaded_file->save();

  3. #3
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Arf... Ça me parait bien compliqué. Je n'ai pas encore commencé à voir comment utiliser une BDD avec Laravel.
    Déjà le filesystem et storage, je peine à bien comprendre donc je voulais faire étape par étape, sans BDD pour le moment.
    Sur un projet précédent, sans Laravel, je faisait tout ça sans BDD. C'est mal ?
    Je débute et suis un peu lent à comprendre des fois...

  4. #4
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Sans bdd c'est très bien pour apprendre mais dans le nom d'un fichier on ne peut pas tout mettre comme il faut . Puis s'il y a beaucoup de fichiers il faut une bonne pagination etc. Ça dépends ce dont tu as réellement besoin.

  5. #5
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Ok dac ;-)
    Besoin, j'en sais rien, c'est surtout pour apprendre ;-)
    Donc, petit à petit, sans BDD pour déjà comprendre le fonctionnement de storage et filesystem.

    L'upload fonctionne, c'est déjà pas mal. Je voudrais juste arriver à ajouter 2/3 fonctionnalités sur les fichiers uploadés.

  6. #6
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Un ptit coup de pouce pour m'aider à ajouter quelques trucs à mon uploader svp ?

Discussions similaires

  1. Info sur les fichiers BAK
    Par SILO dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/12/2008, 19h26
  2. [Upload] Filtre sur les fichiers uploadés
    Par fantazya_z dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2007, 23h51
  3. Réponses: 4
    Dernier message: 03/04/2006, 08h50
  4. Réponses: 3
    Dernier message: 28/10/2004, 08h39
  5. Récupérer les infos sur un fichier audio
    Par Halleck dans le forum Windows
    Réponses: 13
    Dernier message: 17/04/2004, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo