• 利用PHP输入流发送图片

    php://input的使用实例
    服务器君一共花费 228.402 ms 进行了 2 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    前面我们详细地分析了 php://input 的一些情况,那么这里简单地写一个例子感受一下它的用法吧。比如用 PHP 的输入流传输一张图片什么的。

    $data = file_get_contents('wb.png');
    $http_entity_body = $data;
    $http_entity_type = 'application/x-www-form-urlencoded';
    $http_entity_length = strlen($http_entity_body);
    $host = '127.0.0.1';
    $port = 80;
    $path = '/getimg.php';
    $fp = fsockopen($host, $port, $error_no, $error_desc, 30);
    if ($fp)
    {
        fputs($fp, "POST {$path} HTTP/1.1\r\n");
        fputs($fp, "Host: {$host}\r\n");
        fputs($fp, "Content-Type: {$http_entity_type}\r\n");
        fputs($fp, "Content-Length: {$http_entity_length}\r\n");
        fputs($fp, "Connection: close\r\n\r\n");
        fputs($fp, $http_entity_body . "\r\n\r\n");
    
        while (!feof($fp))
        {
            $d .= fgets($fp, 4096);
        }
        fclose($fp);
        echo $d;
    }
    

    服务器端接收的代码 getimg.php:

    /**
     *Recieve image data
    **/
    error_reporting(E_ALL);
    function get_contents()
    {
        $xmlstr= file_get_contents("php://input");
        $filename=time().'.png';
        if(file_put_contents($filename,$xmlstr))
        {
            echo 'success';
        }
        else
        {
            echo 'failed';
        }
    }
    get_contents();
    

    大概就这样,其实挺简单的。不过要注意在enctype="multipart/form-data"情况下,是无法接收到流的,其他情况下都可以。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [运维管理] 路由器与交换机 4 个条目
  2. [计算机算法] TAOCP与算法 12 个条目
  3. [数据库技术] MySQL常用自带函数 3 个条目
  4. [Python程序设计] Python Web部署的背景知识 9 个条目
  5. [移动开发] Android View注入框架Butter Knife 3 个条目
  6. [PHP程序设计] PHP里的引用 5 个条目
  7. [Python程序设计] 从PHP到Python 3 个条目
  8. [Linux操作系统] CentOS上使用EPEL Repository 2 个条目
  9. [移动开发] Android抽屉导航NavigationDrawer 5 个条目
  10. [Python程序设计] 标准库:urllib/urllib2 14 个条目
  11. [软件工程与项目管理] 浏览器的HTML解析器 8 个条目
  12. [PHP程序设计] PHP与函数式编程 1 个条目
窗口 -- [资讯]