Maison  >  Article  >  développement back-end  >  Implémenter la photographie vidéo en php

Implémenter la photographie vidéo en php

墨辰丷
墨辰丷original
2018-06-07 09:57:211911parcourir

Cet article présente principalement l'implémentation de la photographie vidéo en php. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Processus de conception : $GLOBALS ['HTTP_RAW_POST_DATA'] transmet le flux de données photo (binaire) –> Ouvrir une image vierge –> Est-ce une image valide ? C'est fait.
Notez que le flux binaire de la photo contient déjà la taille, le format et d'autres attributs de la photo. En termes de temps, il s'agit de transférer les informations de l'image du téléphone portable vers la page Web.
Sur les téléphones mobiles, le flash est généralement utilisé pour réduire la taille des photos. Tout le monde sait que les images et les vidéos sont composées de flux binaires. Puisque les images peuvent être téléchargées, les vidéos peuvent-elles être téléchargées ? Le principe est-il le même que prendre des photos avec un téléphone portable et télécharger des avatars ? Vous pouvez le rechercher vous-même.
Le code est le suivant

/*
 * 上传图片类
 * @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;
  } 
 }

Lors de l'utilisation de xml-rpc, le côté serveur obtient les données client, principalement via l'entrée du flux d'entrée php, plutôt que le tableau $_POST
Sur la base des détections ci-dessus, nous pouvons tirer les conclusions suivantes :
1. Lorsque la valeur Content-Type est application/x-www-form-urlencoded, PHP remplira le champ correspondant. données du corps de la requête http Entrez le tableau $_POST Les données renseignées dans le tableau $_POST sont le résultat de l'analyse urldecode(). (En fait, en plus du Content-Type, il existe également multipart/form-data pour indiquer que les données sont des données de formulaire, que nous présenterons plus tard)
2. php://input data, tant que le Content-Type n'est pas multipart/form-data (cette condition sera introduite plus tard). Ensuite, php: //les données d'entrée sont cohérentes avec la partie du corps de l'entité http des données. La longueur de ces données partiellement cohérentes est spécifiée par Content-Length.
3. Uniquement lorsque le Content-Type est application/x-www-form-urlencoded et que la méthode de soumission est la méthode POST, les données $_POST et les données php://input sont "cohérentes" (avec des guillemets à indiquer leurs formats) Contenu incohérent et cohérent). Sinon, ils sont incohérents.
4. php://input ne peut pas lire les données $_GET. En effet, les données $_GET sont écrites dans le champ PATH de l'en-tête de la requête http en tant que query_path, plutôt que dans la partie corps de la requête http.
Cela nous aide également à comprendre pourquoi le serveur xml_rpc lit les données via file_get_contents('php://input', 'r'). Au lieu de lire depuis $_POST, c'est précisément parce que la spécification de données de xml_rpc est xml et que son Content-Type est text/xml.

Rendu :

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun .

Recommandations associées :

Système de gestion de téléchargement de fichiers php

idées php pour l'envoi d'e-mails

Utilisez le module APC de PHP pour créer une barre de progression de téléchargement

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn