Bonjour à tous,

Je vous explique déjà le contexte :
Sur le site A j'ai des fichiers stockés dans un répertoire protégé par un .htaccess (Deny From All).
Depuis ce site A je permet à des visiteurs identifiés de télécharger ces fichiers avec ce script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$path = "fichiers/".$id."/nom_fichier.pdf";
			if(file_exists($path) && strpos($path, '.') !== 0) {
				header('Content-Description: File Transfer');
				header('Content-Type: application/octet-stream');
				header('Content-Disposition: attachment; filename='. basename($path));
				header('Content-Transfer-Encoding: binary');
				header('Expires: 0');
				header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
				header('Pragma: public');
				header('Content-Length: ' . filesize($path));
				readfile($path);
				exit;  
 
			} else array_push($tab_error, "Ce fichier n'est plus disponible.");
Jusqu'ici tout va bien !
Mais je souhaiterais pouvoir télécharger ces fichiers depuis un site B.
J'ai donc paramétré allow_url_fopen sur les 2 sites et mis ce code sur le site B :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$path = "http://www.domaine.com/fichiers/".$id."/nom_fichier.pdf";
if(file_exists($path) && strpos($path, '.') !== 0) {
	header('Content-Description: File Transfer');
	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename='. basename($path));
	header('Content-Transfer-Encoding: binary');
	header('Expires: 0');
	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
	header('Pragma: public');
	header('Content-Length: ' . filesize($path));
	readfile($path);
	exit;  
 
} else echo "Ce fichier n'est plus disponible.";
Sauf que forcément file_exists renvoi false.
Si je test avec fopen il me retourne
failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
Je me demande donc si c'est vraiment possible ?

Merci bien d'avance.