download de fichier

Petit nouveau ! | 4 Messages

04 sept. 2012, 23:15

Bonsoir,

Je souhaiterai downloader un fichier présent dans une base, seul le chemin est présent dans la base et non le fichier en lui même.

Je suis complètement bloqué sur ce sujet.

Si vous pouviez m'apporter votre aide je vous remercie par avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 sept. 2012, 23:17

salut,
Je souhaiterai downloader un fichier présent dans une base, seul le chemin est présent dans la base et non le fichier en lui même.
tu as accès au fichier sur le disque coté serveur ?

si oui regarde les exemples de la fonction header


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

04 sept. 2012, 23:20

J'ai essayer avec le code suivant:
<?php


 $chemin = 'plan/{'plan1'}.dwg';
 if(file_exists($chemin))
 {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename=' . basename($chemin));
  header('Content-Transfer-Encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');
  readfile($chemin);
  exit;  
 }
 else
  require('erreur.php');

?>
j'ai inscrit le nom de mon fichier en toute lettre car c'est un essai, mais cela ne fonctionne absolument pas...je n'ai pas entrer filetiez pour le moment.

Avez vous une idée d'ou peux venir l'erreur?

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 sept. 2012, 23:26

sauf si tu a merdé en recopiant le code, on voit directement avec la colorisation de syntaxe que celle ci n'est pas correct sur la première ligne ;)

tu devrais avoir un message d'erreur, si ce n'est pas le cas il faut placer l'error_reporting à E_ALL.

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

04 sept. 2012, 23:31

mon fichier ce nomme {'plan1'}.dwg dans la base, je sais cela est étrange mais bon...lol comment l'écrire correctement dans ce code? je pense que l'erreur est là effectivement.

De plus ou placer le code pour le message d'erreur, je n'ai jamais essayer ce type de message.

Merci bien

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 sept. 2012, 23:48

en 1ère ligne : error_reporting(E_ALL);

la solution est expliqué sur ce tuto http://phpdebutant.org/article14.php


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

05 sept. 2012, 00:15

ok merci bien ;-)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 sept. 2012, 09:33

peux tu cliquer sur le petit bouton résolu ? :)

merci

@+
Il en faut peu pour être heureux ......