判断文件格式并输出文件流

首先需要一个curl的方法 然后获取头信息 输出文件流

<?php
function my_request($url, $data = null,$return_header=false)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_NOSIGNAL, 1);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)){
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_TIMEOUT,10);//设置超时时间
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    if($return_header)
    {
        curl_setopt($curl, CURLOPT_HEADER, 1);//返回header信息
    }
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
}
$url="http://images2017.cnblogs.com/blog/704203/201708/704203-20170823105514714-1139981147.gif";
$stream=my_request($url,null,false);
$header=my_request($url,null,true);
$start=strpos($header,"Content-Type");
$to_header=substr($header,$start);
$end=strpos($to_header,"\r\n");
$real=trim(substr($to_header,0,$end));
if($real)
{
    header($real);
    echo($stream);
}else
{
    die("can not found file type");
}
exit();
?>

效果如图

时间: 2024-10-29 10:48:53

判断文件格式并输出文件流的相关文章

HttpRequest获取文件流,HttpResponse输出文件流

HttpResponse输出文件: Response.Clear(); Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开 Response.AddHeader("Content-Disposition", "attachment; filename=aaa.csv"); var sw = new StreamWriter(response.OutputStrea

9、流类库与输入/输出2.3输出文件流成员函数

输出流成员函数有三种类型: 与操作符等价的成员函数: 执行非格式化写操作的成员函数 其他修改流状态且不同于操作符或插入运算符的成员函数 对于顺序的格式化输出,可以仅使用插入运算符和操作符.对于随机访问二进制磁盘输出,使用其他成员函数,使用或不使用插入运算符. 1.输出流的open函数 2.输出流的close函数 close成员函数关闭与一个输出文 件流关联的磁盘文件.文件使用完毕后必须将其关闭以完成所有磁盘输出.虽然ofstream析构函数会自动完成关闭,但如果在同一流对象上打开另外的文件,就需

c++入门之输出文件流ofstream

1 # include "iostream" 2 # include"fstream" 3 int main() 4 { 5 using namespace std; 6 7 char automobile[50]; 8 int year; 9 double a_price; 10 double d_price; 11 12 ofstream outfile; 13 outfile.open("C:/Users/kb409/Desktop/carinfo.

C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器,它能够长期保留信息,能读能写,可以刷新重写,方便携带,因而得到广泛使用. 文件(file)是程序设计中一个重要的概念.所谓“文件”,一般指存储在外部介质上数据的集合.一批数据是以文件的形式存放在外部介质(如磁盘.光盘和U盘)上的.操 作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部

对数据文件的操作和文件流

一直到现在,我还是用键盘对程序进行输入,但是实际情况中大部分是对文件进行读取和输出,今天就学习一下对文件的输入输出  . 根据文件对数据的组织形式 , 可分为ascll文件和二进制文件    "ascll"文件 又称 文本文件或字符文件  .     文件流 不是若干个文件组成的流  而是以  文件流输入输出  若要对文件进行输入输出  ,  若要对文件进行输入输出  . 就必须通过文件流 来实现  . 现有  三个 用于文件操作的文件类  . ifstream 类 他是从istrea

C++文件流类与文件流对象具体介绍

文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件流是由若干个文件组成的流.文件流本身不是文件,而只是以文件为输入输出对象的流.若要对磁盘文件输入输出,就必须通过文件流来实现. 在C++的I/O类库中定义了几种文件类,专门用于对磁盘文件的输入输出操作.在 图13.2(详情请查看:与C++输入输出有关的类和对象)中可以看到除了标准输入输出流类istr

c++之输出文件和输入文件的处理

各种计算机应用系统通常把一些相关信息组织起来保存在外存储器中, 称为文件,并用一个名字(称为文件名)加以标识 C++把文件看成无结构的字节流, 编码方式: 文本文件      二进制文件 存取方式: 顺序文件      随机文件 ifstream.ofstream 和 fstream 类用于内存与文件之间的数据传输 1.文件操作的基本步骤: (1).打开文件 (2).读/写文件 (3).关闭文件 (1).打开文件: 包括建立文件流对象:与外部文件关联:指定文件的打开方式 打开文件有两种方法: 首

hadoop编程小技巧(7)---自己定义输出文件格式以及输出到不同文件夹

代码測试环境:Hadoop2.4 应用场景:当须要定制输出数据格式时能够採用此技巧,包含定制输出数据的展现形式.输出路径.输出文件名称称等. Hadoop内置的输出文件格式有: 1)FileOutputFormat<K,V>  经常使用的父类. 2)TextOutputFormat<K,V> 默认输出字符串输出格式. 3)SequenceFileOutputFormat<K,V> 序列化文件输出: 4)MultipleOutputs<K,V> 能够把输出数据

C#根据文件流判断文件类型

判断文件真实的类型,不是通过扩展名来判断: /// <summary> /// 判断文件格式 /// http://www.cnblogs.com/babycool /// </summary> /// <param name="filePath"></param> /// <returns></returns> public static bool IsAllowedExtension(string filePa