この記事では主にphpでのビデオ撮影の実装について紹介します。興味のある方はぜひ参考にしてください。
設計プロセス: $GLOBALS ['HTTP_RAW_POST_DATA'] は写真データ ストリーム (バイナリ) を転送します –> 空の画像を開きます –> データ ストリームを空の画像に書き込みます – それが有効な画像であるかどうかを確認します – 完了。
写真の転送に使用されるバイナリ ストリームには、写真のサイズ、形式、その他の属性がすでに含まれていることに注意してください。時間の点では、携帯電話の画像情報が Web ページに転送されます。
Flash は通常、携帯電話で写真のサイズをカットするために使用されます。写真やビデオがバイナリ ストリームで構成されていることは誰もが知っています。写真はアップロードできるので、ビデオもアップロードできるでしょうか。携帯電話で写真を撮ってアバターをアップロードするのと原理は同じでしょうか?自分で調べることができます。
コードは次のとおりです
/* * 上传图片类 * @parameter; 用户ID * @date:2015-10-08 * @author:cy * */ function UpImg($subdir){ // 设置存储路径 if(!empty($subdir)){ $dirnow=getcwd(); $folder =$dirnow."/www.php100.com/".$subdir;// folder where to save images if( !is_dir($folder) ) mkdir($folder); // 图片命名 $datenow=date('Ymd'); $timenow=time(); $image = $datenow.$timenow.'.jpg'; // 图片是否已存在 $check = $folder . '/' . $image; if (file_exists($check)) { unlink($check); } else { $png = file_get_contents ( 'php://input' ) ? file_get_contents ( 'php://input' ) : gzuncompress ( $GLOBALS ['HTTP_RAW_POST_DATA'] );//得到post过来的二进制原始数据 if(!empty($png)){ $file = @fopen($folder."/".$image, "w"); fwrite($file,$png);//写入 hzhuti.com fclose($file);//关闭 // orignal image location $write_image = $folder . '/' . $image; }else{ $msg = "没有数据流"; } if(getimageInfo($write_image)){ $msg = "上传成功"; }else{$msg = "图片格式不正确";} } }else{ $msg = "参数错误"; } return $msg; } /* * 检测图片是否合法 * @parameter; 文件名 * @date:2011-8-15 * @author:cy * */ function getimageInfo($imageName = '') { $imageInfo = getimagesize ( $imageName ); if ($imageInfo !== false) { $imageType = strtolower ( substr ( image_type_to_extension ( $imageInfo [2] ), 1 ) ); // $imageSize = filesize ( $imageInfo ); return $info = array ('width' => $imageInfo [0], 'height' => $imageInfo [1], 'type' => $imageType, 'mine' => $imageInfo ['mine'] ); } else { //不是 php100.com 合法的图片 return false; } }
xml-rpcを使用する場合、サーバー側は主に$_POST配列ではなくphp入力ストリーム入力を通じてクライアントデータを取得します
上記の検出に基づいて、以下の概要:
1. Content-Type 値が application/x-www-form-urlencoded の場合、PHP は http リクエスト本文の対応するデータを配列 $_POST に書き込み、そのデータを $_POST 配列に書き込みます。 urldecode() の解析結果になります。 (実際には、Content-Type に加えて、データがフォーム データであることを示す multipart/form-data もあります。これについては後で紹介します)
2. Content-タイプが multipart/form-data ではありません (条件付き制限は後で導入されます)。次に、php: //入力データは、データの http エンティティ本体部分と一致します。この部分的に一貫したデータの長さは、Content-Length によって指定されます。
3. Content-Type が application/x-www-form-urlencoded で、送信メソッドが POST メソッドである場合にのみ、$_POST データと php://input データが「一致」します (引用符で囲まれていることを示します)。形式は一貫していませんが、コンテンツは一貫しています)。そうでなければ、それらは矛盾します。
4. php://input は $_GET データを読み取ることができません。これは、http リクエストのボディ部分ではなく、http リクエスト ヘッダー (header) の PATH フィールドに $_GET データが query_path として書き込まれているためです。
これは、xml_rpc サーバーが file_get_contents(‘php://input’, ‘r’) を通じてデータを読み取る理由を理解するのにも役立ちます。 $_POST から読み取るのではなく、xml_rpc のデータ仕様が xml であり、その Content-Type が text/xml であるためです。
レンダリング:
概要: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。
関連する推奨事項:
PHPのAPCモジュールを使用してアップロード進行状況バーを作成する
以上がPHPでビデオ写真を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。