• 利用PHP输入流发送图片

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

    前面我们详细地分析了 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. [移动开发] Android属性系统Property 9 个条目
  2. [计算机算法] 从双端队列引出的卡特兰数 3 个条目
  3. [PHP程序设计] PHP里的引用 5 个条目
  4. [Python程序设计] Tornado表单处理 3 个条目
  5. [运维管理] 防火墙原理与应用 5 个条目
  6. [移动开发] Android加载器Loaders 5 个条目
  7. [移动开发] Android布局基本知识 3 个条目
  8. [软件工程与项目管理] 呈现树的构建 13 个条目
  9. [PHP程序设计] 声明式编程范式 12 个条目
  10. [PHP程序设计] fsockopen,curl与file_get_contents 12 个条目
  11. [智力开发与知识管理] 整体性学习步骤 9 个条目
  12. [软件工程与项目管理] 开始了解Git 5 个条目
窗口 -- [博客]