#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 с его оригинальным именем, но не нашел. Если у вас есть какие-либо идеи, помогите мне.