2010-08-06 8 views
-1

Je veux un code qui charge une image sur un serveur PHP, puis l'envoie au navigateur.Comment charger une image en PHP

Par exemple je veux sample.php pour envoyer une image au navigateur une fois qu'il est demandé. En d'autres termes, je veux créer un fichier PHP qui agit comme un proxy pour une image.

+0

Ce n'est pas encore une vraie question. D'où vient l'image? Comment voulez-vous le charger sur le serveur? Et à quel moment voulez-vous le servir? –

+0

Donc, quelque chose en dehors d'une balise 'img', ou une redirection vers l'emplacement de l'image sur le serveur? – Tarka

+0

De toute façon, cela va être intéressant pour vous: http://www.php.net/manual/fr/features.file-upload.php –

Répondre

0

Vous devez utiliser

$image = fopen("image.png"); 
Modify the headers(not sure exacly if it's correct) 
headers("Content-type: image/png"); 
And then send the image 
echo fread($image, file_size("image.png")); 
1

pourquoi tu fais ça? pourquoi ne pas livrer l'image directement? si vous essayez d'afficher une image aléatoire, vous pouvez tout aussi bien rediriger vers l'image en utilisant

header("Location: address-of-image"); 

pour livrer le fichier à vos clients de votre serveur et non à partir de son emplacement d'origine, vous pouvez simplement faire. mais vos paramètres php.ini doivent permettre un fichier externe ouvre

readfile("http://www.example.com/image.jpg") 

têtes corrects ne sont pas nécessaires si vous allez afficher l'image dans une balise img, barbante je le recommande. vous devriez vérifier le type de fichier de l'image ou dans la plupart des cas juste définir un en-tête de flux d'octets afin que le navigateur ne suppose pas un type incorrect comme du texte ou quelque chose et essaie d'afficher des données binaires. de le faire juste faire

header("Content-type: application/octet-stream") 

une chose à considérer peut être mise en-têtes corrects pour la mise en cache ...

Questions connexes