Скачайте word focument из public_path с его оригинальным именем с помощью Laravel8

#jquery #ajax #laravel

Вопрос:

Я пытаюсь создать документ Word с помощью Laravel8 .

Поэтому я использую следующий контроллер для создания документа и сохранения его на a public_path , а затем загружаю этот файл из public_path .

 public function generer(Request $request){

   $projets_casting= Projet_Casting::whereIn('id_contrat',explode(",", $request->selectedvalues))->where('id_projet',$request->id_projet)
             ->get();
 foreach ($projets_casting as $projet_casting) {

                  $id_modele_contrat = Contrat::where('id_contrat',$projet_casting->id_contrat)->value('id_modele_contrat');

                  $model_file = Model_Contrat::where('id_modele_contrat',$id_modele_contrat)->value('fichier');

                  $castings = Casting::where('id_casting',$projet_casting->id_casting);

                  $nom= $castings->select('nom')->value('nom');
                  $prenom= $castings->select('prenom')->value('prenom');
                   $templateProcessor = new TemplateProcessor('C:UsersssDocumentsGitHubCasting_V0.1_Testcastingstorageapppublicuploadsmodeles_contrat/'.$model_file);

                  $templateProcessor->setValue('nom_casting',$nom);
                  $templateProcessor->setValue('prenom_casting', $prenom);
                  $filename= $numero_contrat.'_'.$nom;
                 $filePath = public_path('/Contrats/'.$filename.'.docx');

                  header('Content-Type: application/octet-stream');
                   header("Content-Disposition: attachment; filename=".$filename.".docx");

                     $templateProcessor->saveAs(public_path('/Contrats/'.$filename.'.docx'));

                     readfile(public_path('/Contrats/'.$filename.'.docx'));  
        }    
}
 

И я использую следующий сценарий :

  $.ajax({
                url: "/generer/" id_contrat "/" id_projet,
                type: 'get',
                headers: {
                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
               
                    data: 'selectedvalues='   id_contrat,'id_projet=':id_projet,
                  
                         xhrFields: { 

                responseType: 'blob' 

            }, 

            success: function(response){ 

                var blob = new Blob([response]); 
                console.log(blob);
                console.log(response);
                var link = document.createElement('a'); 

                link.href = window.URL.createObjectURL(blob); 

                link.download = "myfile.docx"; 

                link.click(); 

            }, 

            error: function(blob){ 

                console.log(blob); 

            } 
            
              
            });
 

это позволило мне сгенерировать и загрузить документ Word, но проблема в том, что файл загружается с именем myfile , а не с его original name именем .

Я много искал о том, как загрузить файл word с его оригинальным именем, но не нашел. Если у вас есть какие-либо идеи, помогите мне.