2011-10-19 4 views
4

J'utilise http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation pour accéder à des fichiers privés en utilisant php. Je peux obtenir les données du fichier en disant $ object-> body. Je veux réellement voir l'image dans le navigateur ou lire la vidéo dans un lecteur vidéo. Y-a-t-il un moyen de faire ça? Je pense que j'ai besoin de quelque chose comme readfile. Le problème est readfile est j'ai besoin du chemin d'accès au fichier. Le chemin est privé, donc je ne peux pas l'utiliser. Y at-il un moyen de faire un fichier readfile des données binaires?équivalent readfile pour les données binaires?

Je l'ai mis dans le php en pensant que cela aiderait mais il affiche toujours les données binaires.

header('Content: image/jpeg'); 
header('Content-Disposition: inline; filename=IMAG0108.jpg'); 
echo $object->body; 

Répondre

1

Vous venez de définir l'en-tête de type de contenu et de sortir le fichier readfile dans le navigateur. Qu'est-ce que je fais est de créer un nouveau fichier php, comme "showimage.php", qui accepte un ID ou un tel pour savoir quelle image afficher. Ensuite, je l'utilise dans une page de navigateur:.

En showimage.php, quelque chose comme:

<?php 
    header('Content-type: image/png'); 
    readfile('/var/images/' . $_GET['id'] . '.png'); 
    // or 
    // echo $object->body; 
?> 

Ce lirait un fichier à partir du système local et la sortie sous forme d'image. Du haut de ma tête, alors j'ai peut-être raté ce code!

+1

Vous ne devriez pas 'echo readfile' Le type de retour est int – Pacerier

+0

true - readfile sortira dans le tampon, pas besoin de vérifier la valeur de retour –

+0

éditez la réponse alors .... – Pacerier

0
header('Content: image/jpeg'); 
echo $object->body; 

devrait fonctionner correctement (pour les fichiers JPEG), vous devez savoir ce que filetype est en question, puis envoyer les en-têtes de contenu approprié.

+0

il affiche toujours le binaire dans le navigateur. – user983223

+0

définir 'the binary' ... si ce n'est pas l'image, vous devriez voir la page blanche/image. –

+0

le code source ... ceci est la première ligne 'ÿØÿálÔExifMM * HTCbjr (‡ izRPC36100HH '; 0220' ', 0100 À 42011: 04: 19 21: 21: 382011: 04: 19 21: 21: 38ìdR980100 ¨ (° kHHÿØÿÛ "\t $." ' – user983223