Lorsque je télécharge un fichier (.doc, .docx) de mon dossier de stockage, il devient illisible. Si je vais dans le dossier local et ouvre le fichier, il est valide et lisible.
J'utilise la fonction de téléchargement standard, en-têtes et des trucs .. Jetez un oeil à mon code:
$fileNameGenerate = 'example_filename';
$fileArr = [ 'wierd_filename', 'docx' ];
$cvPath = storage_path('app/example_folder/subfolder/wierd_filename.docx');
$headers = array(
'Content-Type: application/' . $fileArr[1],
);
try {
return response()->download($cvPath, $fileNameGenerate . '.' . $fileArr[1], $headers);
} catch (\Exception $e) {
//Error
return redirect()->back()->with('error', trans('locale.file_does_not_exists'));
}
Est-ce que quelqu'un sait ce qui ne va pas ici? Je vous remercie!
Mise à jour: J'ai supprimé les en-têtes, cela ne fonctionne pas avec ou sans eux.
Voici comment les fichiers rendent dans les 2 cas différents:
Avez-vous essayé d'imprimer $ fileArr [1] et de vous assurer qu'il donne le bon type Mime? – Rahi
Il n'est pas nécessaire de définir l'en-tête. Vous dites au navigateur de télécharger le fichier, supprimez-le. – Ohgodwhy
@Rahi, oui le tableau est correct. En fait est doc, pas docx, mais il devrait encore fonctionner: tableau (0 => "c58ae31d925e486953c5f029bfcf8916", 1 => "doc") –