2011-10-19 27 views
4

我使用http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation访问使用php的私人文件。我可以通过说$ object-> body来获取文件的数据。我实际上想要在浏览器中看到图像或在视频播放器中播放视频。有没有办法做到这一点?readfile与二进制数据等效吗?

我想我需要像readfile这样的东西。问题是readfile是我需要文件的路径。路径是私人的,所以我不能使用它。有没有办法做二进制数据的读文件?

我把这个在PHP的思想这将有助于但它仍然显示二进制数据。

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

回答

1

您只需设置内容类型标题并将读取文件输出到浏览器。我所做的是创建一个新的php文件,如“showimage.php”,它接受一个I​​D或某些知道要显示的图像。然后我在浏览器页面中使用它:。

在showimage.php,是这样的:

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

这会从本地系统,并将其输出为图像读取的文件。关闭我的头顶,所以我可能搞砸了那个代码!

+1

你不应该'echo readfile'。返回类型是int。 – Pacerier

+0

true - readfile将输出到缓冲区,不需要检查返回值。 –

+0

编辑答案然后.... – Pacerier

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

应该工作正常(JPEG文件为),你需要知道是什么问题,文件类型,然后发送适当的内容头。

+0

它仍然在浏览器中显示二进制文件。 – user983223

+0

定义'二进制'...如果这不是图像,你应该看到白色页面/图像。 –

+0

源代码...这是第一行'ÿØÿálÔExifMM* HTCbjr(‡izRPC36100HH'; 0220'',0100-42011:04:19 21:21:382011:04:19 21:21:38ìdR980100¨(°kHHÿØÿÛ “\t $。' – user983223