php上传二进制数据流

来源:互联网 发布:看电影视频软件 编辑:程序博客网 时间:2024/06/05 16:50
<form action="提交到处理地址" method="post" enctype="multipart/form-data" class="form-horizontal">                                <div class="form-group">                                    <label class="col-lg-2 col-sm-2 control-label">上传图片</label>                                    <div class="col-lg-4">                                    <input type="file" name="photo">                                    </div>                                </div>                                <div class="form-group">                                    <div class="col-lg-offset-2 col-lg-4">                                        <button type="submit" name="submit" class="btn btn-default">确定</button>                                    </div>                                </div>                            </form>// 用来处理上传的数据流代码public function imgApp(){        //方式一:电脑上传文件        $image = $_FILES["photo"]["tmp_name"];        $fp = fopen($image, "r");        $file = fread($fp, $_FILES["photo"]["size"]); //二进制数据流        //保存地址        $imgDir = './Uploads/';        //要生成的图片名字        $filename = date("Ym")."/".md5(time().mt_rand(10, 99)).".png"; //新图片名称        $newFilePath = $imgDir.$filename;        $data = $file;        $newFile = fopen($newFilePath,"w"); //打开文件准备写入        fwrite($newFile,$data); //写入二进制流到文件        fclose($newFile); //关闭文件        //写入数据库        $arr = array(                "uid" => 1, //用户id                "cid" => 1, //分类id                "a_title" => $_POST["a_title"], //标题                "a_content" => $_POST["a_content"], //内容                "photo" => $filename, //图片路径                "a_urgent" => $_POST['status'] == 'on' ? 0 : 1, //是否急需                "add_time" => time(), //创建时间            );        if(empty($arr["a_title"])){            $this->error("标题不为空");        } else if(empty($arr["a_content"])) {            $this->error("内容不为空");        }        if($db = M("answer")->add($arr)){            $this->success("保存成功", "demo2");        } else {            $this->error("失败");        }    }<?php/** php 发送流文件* @param  String  $url  接收的路径* @param  String  $file 要发送的文件* @return boolean*/function sendStreamFile($url, $file){    if(file_exists($file)){        $opts = array(            'http' => array(                'method' => 'POST',                'header' => 'content-type:application/x-www-form-urlencoded',                'content' => file_get_contents($file)            )        );        $context = stream_context_create($opts);        $response = file_get_contents($url, false, $context);        $ret = json_decode($response, true);        return $ret['success'];    }else{        return false;    }}$ret = sendStreamFile('http://localhost/fdipzone/receiveStreamFile.php', 'send.txt');var_dump($ret);?><?php/** php 接收流文件* @param  String  $file 接收后保存的文件名* @return boolean*/function receiveStreamFile($receiveFile){    $streamData = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';    if(empty($streamData)){        $streamData = file_get_contents('php://input');    }    if($streamData!=''){        $ret = file_put_contents($receiveFile, $streamData, true);    }else{        $ret = false;    }    return $ret;}$receiveFile = 'receive.txt';$ret = receiveStreamFile($receiveFile);echo json_encode(array('success'=>(bool)$ret));?>


0 0
原创粉丝点击