J'ai décidé de poser cette question parce que cela me rend fou et je ne sais pas ce que je peux faire parce que j'ai essayé tout ce que je peux penser.Impossible de télécharger le fichier PDF généré hébergé dans xampp
Je construis un outil web avec Laravel. Il y a une option pour générer quelques rapports en pdf et voici quand mon problème commence.
Mes fonctions pour créer ce fichier pdf sont.
public function generarPDF() {
$inicio = Input::get('inicio');
$fin = Input::get('fin');
$datos = $this->datosInforme($inicio, $fin);
$html = View::make('reportes.pdf', array('datos' => $datos,
'inicio'=> $inicio,
'fin' => $fin));
return $html;
}
public function descargarArchivoPDF() {
$inicio = Input::get('inicio');
$fin = Input::get('fin');
$nombreArchivo = storage_path().'/pdf/report-'.(new DateTime())->format('Y-m-d').'.pdf';
if (file_exists($nombreArchivo)) {
unlink($nombreArchivo);
}
$command = 'wkhtmltopdf -O Landscape -s A4 -T 25 -R 20 -B 25 -L 20 "';
$url = url('/generar-pdf-reporting');
$argumentos = array();
if (!empty($inicio)) {
$argumentos[] = 'inicio='.$inicio;
}
if (!empty($fin)) {
$argumentos[] = 'fin='.$fin;
}
if (count($argumentos) > 0) {
$argumentos = '?'.implode('&', $argumentos);
}
else {
$argumentos = '';
}
$url .= $argumentos;
$command .= $url.'" '.$nombreArchivo;
// return $command;
$process = new Symfony\Component\Process\Process($command);
$process->run();
if (!$process->isSuccessful()) {
throw new Symfony\Component\Process\Exception\ProcessFailedException($process);
}
else {
return Response::download($nombreArchivo);
}
}
La fonction generarPDF construit juste une vue qui sera le contenu du fichier pdf.
Le fichier est créé avec succès mais lorsque j'essaie de le télécharger, je ne peux pas le faire car (selon le chrome) il y a une erreur de réseau.
Chose étrange est que tout fonctionne très bien dans ma boîte Linux, qui n'utilise pas xampp mais apache + php + mysql installé à partir de dépôts. Si je supprime le code pour construire le fichier et ne laisse que celui de télécharger un ancien créé, fonctionne parfaitement, je pensais que cela pourrait être une question de processus de Symfony fonctionnant de manière asynchrone, donc fait attendre jusqu'à la fin mais avec pas de chance. Xampp est installé sur un serveur Windows 8.
Je ne sais pas ce que je peux faire d'autre. Peut être un bug xampp?
Est-ce qu'il déclenche une exception ou que vous trouvez quelque chose dans error.log? –
Rien du tout. Tout semble bien fonctionner. C'est vraiment étrange. – Dhouard
Vous stockez le pdf généré et en pointant le lien pour le télécharger ou simplement générer un lien qui génère et télécharge le pdf? –