2011-08-17 2 views
0

Je suis en train de créer un script qui va enregistrer une image du Web sur l'ordinateur de l'utilisateur. C'est ce que j'ai appris, jusqu'à présent:Obtenez le chemin du dossier de téléchargements en PHP?

$url = 'http://example.com/my-image.jpg'; 
$img = '/my/folder/my-image.jpg'; 
file_put_contents($img, file_get_contents($url)); 

Est-ce la bonne façon de procéder? Si oui, comment aurais-je le chemin, disons, le dossier des téléchargements, dans la machine de l'utilisateur?

+0

Ce script doit-il être exécuté sur l'ordinateur de l'utilisateur ou sur votre serveur Web? –

+1

'file_put_contents' est utilisé pour écrire des fichiers sur votre serveur, pas sur l'ordinateur de l'utilisateur. – adlawson

Répondre

3

Vous ne pouvez pas. Le dossier Téléchargements est un emplacement spécifique au navigateur dont seul l'utilisateur a le contrôle. Le fichier sera téléchargé dans le dossier spécifié par l'utilisateur.

Utilisez readfile avec header pour forcer l'affichage d'une boîte de dialogue Enregistrer sous ....

<?php 
header('Content-disposition: attachment; filename=image.jpg'); 
header('Content-type: image/jpeg'); 
readfile('/server/path/to/image.jpg'); 
?> 
+0

Merci! Alors qu'est-ce que je mets pour le chemin sortant? "/"? –

+0

Vous ne spécifiez pas de chemin de destination lors du téléchargement d'un fichier. –

+0

@Ankur: Voir le code ci-joint. –

1

Si oui, comment pourrais-je obtenir le chemin d'accès, par exemple, le dossier de téléchargement, dans la machine de l'utilisateur?

Vous ne pouvez pas stocker le contenu sur l'ordinateur de l'utilisateur de cette façon, uniquement sur votre serveur local.

Vous devez servir le fichier en téléchargement, que l'utilisateur peut ensuite "enregistrer sous ..." dans son navigateur.

Questions connexes