fread显示二进制数据而非实际图像

时间:2011-10-08 14:28:36

标签: php amazon-s3 readfile

基本上我正在做一个文件的恐惧,它正在我的浏览器中抛弃原始数据,而不是向我显示实际图像。

在我看来,我需要在调用函数之前添加标题值。我试过了,但数据仍在屏幕上显示,而不是显示实际图像。

我过去曾使用readfile_chunked函数来帮助在视频播放器中显示视频,因此我希望再次使用该功能来显示其他文件类型(图像,文本等)。这是readfile_chunked函数。

function readfile_chunked($filename,$retbytes=true) {
   $chunksize = 1*(1024*1024); // how many bytes per chunk
   $buffer = '';
   $cnt =0;
   // $handle = fopen($filename, 'rb');
   $handle = fopen($filename, 'rb');
   if ($handle === false) {
       return false;
   }
   while (!feof($handle)) {
       $buffer = fread($handle, $chunksize);
       echo $buffer;
       ob_flush();
       flush();
       if ($retbytes) {
           $cnt += strlen($buffer);
       }
   }
       $status = fclose($handle);
   if ($retbytes && $status) {
       return $cnt; // return num. bytes delivered like readfile() does.
   }
   return $status;

}

这就是我正在做的...做标题的东西然后我调用函数....

header("Content-type: $type");
header("Content-Length: $size");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: inline; filename=$uri");
header("Pragma: no-cache");
header("Expires: 0");


readfile_chunked($filename);

我已尝试将内容处置更改为内联或附件,但它不显示内联,也不会下载附件。

0 个答案:

没有答案