PHP如何实现将文件转二进制输出

  • 来源:网络
  • 更新日期:2020-07-28

摘要:PHP将文件转二进制的方法:首先设置“header( "Content-type: image/jpeg");”;然后通过fopen和fread函数打开并读取文件;最后将图片文件以二进制流的形式输出到客户端即可。推

PHP将文件转二进制的方法:首先设置“header( "Content-type: image/jpeg");”;然后通过fopen和fread函数打开并读取文件;最后将图片文件以二进制流的形式输出到客户端即可。

推荐:《PHP教程》

php将文件转换成二进制输出

header( "Content-type: image/jpeg");
$PSize = filesize('1.jpg');
$picturedata = fread(fopen('1.jpg', "r"), $PSize);
echo $picturedata;

就这么几句话,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别,需要注意的是,发送的header要根据具体情况而定,不一定都是image/jpeg。JPG的是它,但PNG的就是image/png.不同的图片输出不同的头部。

用途:

OSS默认支持上传文件流,但input表单默认是返回一个文件:

 /**
    * 支持文件类型上传到OSS
    */
    public static  function uploadFile($filename, $ext = 'jpg', $type = Enum_OSS_File_Type::IMG) {
        $content = static::file2content($filename);
        return static::upload($content, $ext, $type);
    }
    
    public static  function file2content($filename) {
        return fread(fopen($filename, 'r'), filesize($filename));
    }