Echech Upload pdf formulaire

Default
,

Bonjour,

En ce moment j'essaie d'apprendre le framework Laravel, et j'ai un problème sur l'upload de fichier.
J'ai deux types de fichiers dans ma base de données, image et PDF.

Pour les images, tout fonctionne, mais pas pour les pdf. Quelqu'un pourrait me donner une piste vers la solution, ou me dire ce qui ne vas pas s'il vous plaît.

ma vue :

<form method="POST" action="{{ url('/new/'.$data->libelle) }}" enctype="multipart/form-data">
            {{ csrf_field() }}
            @if ($data->id !=9) <!-- if category != PDF -->
            <label for="upload">Image :</label>
            <input type="file" name="upload" />
            @else <!-- else category == PDF -->
            <label for="upload_pdf">PDF :</label>
            <input type="file" name="upload_pdf" />
            @endif
            @if (count($data->langues) > 0)

                @foreach ($data->langues as $langue)
                <h3>{{ $langue->libelle }}</h3>
                <input type="text" name="titrel{{ $langue->id }}" placeholder="Title {{ $langue->libelle }}" value-"{{old("titre")}}" />
                @if ($data->id != 7 && $data->id !=9)
                <label for="descriptionl{{ $langue->id }}">Description {{ $langue->libelle }}</label>
                <textarea type="text" name="descriptionl{{ $langue->id }}" placeholder="Description {{ $langue->libelle }}" value-"{{old("description")}}"></textarea>
                @endif
                @endforeach

            @endif
            <input type="submit" value="Create" />
        </form>

mon controller :

public function store(Request $request,$id){
            $categorie = Categorie::where('libelle',$id)->first();
            if($categorie == null)
                return redirect("/home");
            $validation=['upload' => 'required|image'];
            $validation=['upload_pdf' => 'required|mimes:pdf|max:10000'];
            $langues=Langue::all();
            foreach ($langues as $key => $value) {
                $validation["titrel".$value->id]='max:255';
                $validation["descriptionl".$value->id]='max:1000';
            }
            $this->validate($request, $validation);
            $article= new Article;
            $file=$request->file('upload');
            $article->url=$file->getClientOriginalName();
            $article->idcategorie=$categorie->id;

            $new=new File();
            $pdf=$request->pdf('upload_pdf');
            $new->idCategorie=$categorie->id;
            $new->url=$pdf->getClientOriginalName();


            DB::beginTransaction();
                try{
                $article->save();
                $article->url=$article->id."-".$article->url;
                $path=storage_path('app/public/'.$categorie->libelle);
                if(!Filemgr::exists($path)) {
                    Filemgr::makeDirectory($path.'/mini', 0766, true);
                    Filemgr::makeDirectory($path.'/micro', 0766, true);
                }            
                Image::make($file)
                    ->resize(1400, null, function ($constraint) {
                        $constraint->aspectRatio();
                    })
                    ->save($path.'/'.$article->url);
                Image::make($file)
                    ->resize(900, null, function ($constraint) {
                    $constraint->aspectRatio();
                    })
                    ->save($path.'/mini/'.$article->url);
                Image::make($file)
                    ->resize(600, null, function ($constraint) {
                        $constraint->aspectRatio();
                    })
                    ->save($path.'/micro/'.$article->url);
                $article->save();


                $new->save();
                $new->url=$new->id."-".$new->url;
                $path = $request->upload->storeAs('public/'.$categorie->libelle.'s', $new->url);
                $new->save();

                foreach($langues as $key=>$value){
                    $text=new Textarticle;
                    $text->titre=$request->input('titrel'.$value->id);
                    $text->description=$request->input('descriptionl'.$value->id);
                    $text->idarticle=$article->id;
                    $text->idlangue=$value->id;
                    $text->save();
                }
                DB::commit();
                }
                catch(Exception $e){
                    DB::rollBack();

                }
            return redirect("/categorie/".$categorie->libelle);
        }

Je vous remercie :)

2 Réponse

100053
, Il a répondu à ma question !

Quel est l'erreur que tu as ? Si tu n'as pas d'erreur, as tu vérifié que ta variable $pdf n'est pas vide ? Si ce n'est pas le cas, le fichier lui est bien créé dans ton répertoire public ?

Je vois que ton pdf est enregistré dans l'objet File. Ca veut dire que dans ton dossier App tu as une classe File comme model ? Mais le classe File existe déjà de base en PHP, tu as vérifié si tu importes bien la bonne classe ?

Default
, Il a répondu à ma question !

La seule erreur est que l'upload du pdf a échoué
le fichier n'est effectivement pas créé :/

Je vais vérifier tout ça, car en effet j'ai une classe File en model