Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1475 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  forcer telechargement fichier jpg

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

forcer telechargement fichier jpg

n°2074453
gortex3D
Macroteur
Posté le 07-05-2011 à 10:19:04  profilanswer
 

Hello tout le monde
 
Je n'y connais absolument rien en php et donc mes recherches sont infructueuse. JE cherche à mettre un fichier php qui par exemple se nommerai download.php qui me permette de forcer le téléchargement d'un fichier appelé en option.
 
un truc du genre : http://monsite.free.fr/wallpaper/d [...] mage01.jpg
Qui me force le téléchargement de l'image "monimage01.jpg" et donc pas l'afficher dans le navigateur
 
Et donc si je l'appelle : http://monsite.free.fr/wallpaper/d [...] mage02.jpg me permettre de télécharger l'image N°02 sans avoir à modifier le fichier download.php
 
Est ce possible ? Si oui serait il possible de me donner des liens, des adresses ou même un bout de code sur comment réaliser ce genre de fichier ?
 
Merci d'avance
 
Gortex3D


Message édité par gortex3D le 07-05-2011 à 10:19:26

---------------
Mon feedback
mood
Publicité
Posté le 07-05-2011 à 10:19:04  profilanswer
 

n°2074571
billgatesa​nonym
Posté le 08-05-2011 à 13:41:46  profilanswer
 

Bonjour,
 
Le mot "télécharger" a deux sens distincts que l'anglais rend bien : upload et download.
Dans la question, il n'est pas très clair s'il s'agit du premier ou du deuxième sens.
Je vais supposer qu'il s'agit d'un download, c'est-à-dire de l'envoi d'un fichier depuis le serveur jusqu'au poste de l'utilisateur.
 
Habituellement l'envoi se fait de manière transparente lorsqu'une page HTML contient une balise <img src=...>.
Dans la question, il n'est pas très clair, pourquoi ce moyen habituel n'est pas souhaité.
 
Si je ne me trompe pas, il s'agirait de transférer un fichier depuis le serveur directement vers le disque dur de l'utilisateur.
Dans ce cas, dans quel répertoire ? Il faut bien que l'utilisateur indique le nom qui lui convienne.
De toutes manières, pour des "raisons de sécurité", il est interdit pour un serveur internet d'accéder au disque dur de l'utilisateur,
sauf avec les cookies, ou avec des plug-in qui sont autorisés.

n°2074572
FlorentG
Unité de Masse
Posté le 08-05-2011 à 13:55:29  profilanswer
 


Whaaaat  [:pussoforce]

 


On peut assez facilement forcer le téléchargement de n'importe quel fichier, en balançant au navigateur les bon entêtes.

 

Imaginons que ton script download.php soit dans le même dossier que les images, il ressemblera à ça :

Code :
  1. $image = isset($_GET['image']) ? $_GET['image'] : '';
  2.  
  3. if($image) {
  4.  
  5.  $imageFile = dirname(__FILE__) . DIRECTORY_SEPARATOR . str_replace(array('..', '/', "\r", "\n" ), '', $image);
  6.  
  7.  if(is_file($imageFile)) {
  8.  
  9.        header('Content-Length: '. filesize($imageFile));
  10.        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  11.        header('Content-disposition: attachment; filename="' . $image . '"');
  12.        header('Content-Type: image/jpeg');
  13.  
  14.        readfile($imageFile);
  15.  }
  16. }
 

[:icon4] Attention, c'est une version minimale vite bricolée. Y'a peut-être des problèmes potentiels de sécurité, et ça marche que pour les jpg (faut détecter le type mime correct). C'est juste pour montrer comment ça marche à peu près.


Message édité par FlorentG le 08-05-2011 à 13:55:42
n°2074578
gortex3D
Macroteur
Posté le 08-05-2011 à 14:21:39  profilanswer
 

Merci pour vos réponses. En réalité les fichiers ne sont pas des jpg mais des png car je gère la transparence avec mais ca change pas grand chose. En gros je veux sur un site affiché une miniature et lorsque je clique sur la miniature accéder à l'image de taille réél. Le souci est que pour le moment lorsque je clique sur le lien je me retrouve a afficher l'image dans le navigateur or je voudrais que lorsque je clique sur l'image au lieu de l'afficher je lance le gestionnaire de téléchargement du navigateur ce qui permettrai de supprimer une étape à l'utilisateur final qui fait à l'heure actuel un clique sur la minaiture et ensuite un clique droit enregistré sous.
 
Sinon pour ce qui est du fichier download.php je souhaite effectivement le mettre dans le même dossier que mes images.


---------------
Mon feedback
n°2074886
gortex3D
Macroteur
Posté le 10-05-2011 à 06:39:24  profilanswer
 

Est ce que quelqu'un pourrai me dire comment écrire exactement l'adresse pour que le fichier se télécharge ?
 
J'imagine que l'exemple que j'ai mis en poste 1 est faut, non ?


---------------
Mon feedback
n°2074891
FlorentG
Unité de Masse
Posté le 10-05-2011 à 08:39:36  profilanswer
 

Ah oui :D Il faut nommer le paramètre de préférence :

Code :
  1. download.php?image=pouet.jpg


Message édité par FlorentG le 10-05-2011 à 08:39:42
n°2075113
gortex3D
Macroteur
Posté le 10-05-2011 à 18:39:31  profilanswer
 

Merci pour l'aide. JE regarderai après mangé comment faire pour que ca passe avec un png. En tout cas merci, je vous tiens au courant.


---------------
Mon feedback
n°2075629
gortex3D
Macroteur
Posté le 12-05-2011 à 22:48:53  profilanswer
 

Bon ben a force de recherche je ne trouve pas de solution. J'ai fait encore pas mal de recherche et j'ai trouvé d'autres scripts mais a chaque fois j'ai un soucis le script s'affiche dans l'explorateur à la place de s’exécuter. le fichier.php est héberger par free.
 
Voila le code que j'ai tenté d'utiliser et qui ne fonctionne pas :
 

Code :
  1. $fullPath = $_GET['image']
  2. header( 'Pragma: no-cache' );
  3. header( 'Cache-Control: no-cache, must-revalidate' );
  4. header( 'Expires: 0' );
  5. header( 'Content-Transfer-Encoding: binary' );
  6. header( 'Content-Length: ' . filesize( $fullPath ) );
  7. header( 'Content-Type: application/octetstream; name="' . basename($fullPath) . '"' );
  8. header( 'Content-Disposition: attachment; filename="' .  basename($fullPath) . '"' );
  9. readfile($fullPath);
  10. exit();


Pouvez vous m'aidez à résoudre mon soucis ? Est il possible que le problème vienne de free ?


---------------
Mon feedback
n°2075647
GordonF_69
Posté le 13-05-2011 à 05:14:06  profilanswer
 

le script s'affiche dans l'explorateur ???
 
t'aurai pas oublier les  
 
<? au debut du script et
?> a la fin ?

n°2075648
gortex3D
Macroteur
Posté le 13-05-2011 à 06:18:20  profilanswer
 

Je suis un boulet. Merci pour ton aide.
 
JE viens de tester ca marche mieux (ca ne s'affiche plus mais j'ai ce message d'erreur :
 
Parse error: syntax error, unexpected T_STRING in /mnt/119/sdb/6/0/gortex3d/htc-dev/serie2/01lockscreen/download.php on line 5
 
En ligne 5 j'ai le code suivant :
header( 'Pragma: no-cache' );
 
En tout  cas merci pour l'aide


---------------
Mon feedback
mood
Publicité
Posté le 13-05-2011 à 06:18:20  profilanswer
 

n°2075680
FranceDenB​as
1 dépense = 1 socialiss' :o
Posté le 13-05-2011 à 09:31:14  profilanswer
 

gortex3D a écrit :

Je suis un boulet. Merci pour ton aide.
 
JE viens de tester ca marche mieux (ca ne s'affiche plus mais j'ai ce message d'erreur :
 
Parse error: syntax error, unexpected T_STRING in /mnt/119/sdb/6/0/gortex3d/htc-dev/serie2/01lockscreen/download.php on line 5
 
En ligne 5 j'ai le code suivant :
header( 'Pragma: no-cache' );
 
En tout  cas merci pour l'aide


 
Rajoute une parenthèse en ligne 4 du code (ligne 1 ici) :

Code :
  1. $fullPath = $_GET['image']; //parenthèse qui manquait dans ton code
  2. header( 'Pragma: no-cache' );
  3. header( 'Cache-Control: no-cache, must-revalidate' );
  4. header( 'Expires: 0' );
  5. header( 'Content-Transfer-Encoding: binary' );
  6. header( 'Content-Length: ' . filesize( $fullPath ) );
  7. header( 'Content-Type: application/octetstream; name="' . basename($fullPath) . '"' );
  8. header( 'Content-Disposition: attachment; filename="' .  basename($fullPath) . '"' );
  9. readfile($fullPath);
  10. exit();


Message édité par FranceDenBas le 13-05-2011 à 09:33:03

---------------
"Il a inventé le bougisme : je bouge donc je suis" :sol: - Dupont-Aignan à propos de Son Altesse Sérénissime Sarkal 1er. Merci Handsome Devil et Meriadeck.
n°2075938
gortex3D
Macroteur
Posté le 14-05-2011 à 20:54:12  profilanswer
 

Un grand merci, ça marche impeccable.


---------------
Mon feedback

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  forcer telechargement fichier jpg

 

Sujets relatifs
lecture d'un fichier .txt et retourner un tableau et une variable P,svCrée un bouton qui a un fichier exe
Fichier index.htm tout fou !copier un fichier
Forcer le téléchargement d'un fichier vidéo sans affichage WMPForcer le téléchargement et espaces dans le nom du fichier
Forcer le téléchargement d'un fichier txt ou html[ PHP ] fOrcer le téléchargement d'un fichier .txt
[javascript php html] comment forcer le telechargement d'un fichier 
Plus de sujets relatifs à : forcer telechargement fichier jpg


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR