Bonjour à tous.
Pouvez vous m'expliquer à travers un tutoriel comment enregistrer des vidéos dans une base de données svp?
Je veux réaliser créer un site de vidéos en ligne mais je ne maîtrise pas d'abord la procédure d'enregistrement des vidéos dans ma base de données.
Je considère actuellement une bd comportant une seule table videos(id, titre, description, date).
Je veux enregistrer les videos dans la bd et les afficher sur une page pour qu'on puisse les visualiser et les lire une à une. Merci!
Il faut passer par le type BLOB (qui signifie gros fichier binaire).

EDIT :

Donc
Soit tu utilises le type BLOB pour stocker directement ce que tu as en base (ce qui, en entreprise, n'est pas forcément conseillé)
Soit tu upload tes vidéos directement dans ton système de fichier et tu stock dans ta base uniquement les chemins relatif/absolue comme tu veux, et dans ce cas tu peux charger en PHP tes vidéos via la base (et les chemins).
Modifié par JENCAL (25 Jul 2018 - 15:54)
Dans ta table tu as :
(id, titre, description, date).
tu rajoute la colonne "chemin" et tu upload ton fichier sur ton serveur (www/)
une fois la vidéo mise au bonne endroit sur ton serveur tu saisi les premiers données dans ta table (id titre etc....) et quand tu arrive sur chemin, tu met le chemin de ta video.
Pour la restitution, ton chemin est capter par ton php (car c'est le php qui communique avec la base de données) et qui pour chaque vidéo demandé va construire ta vidéo HTML via la balise <video>
Je te montre ce que j'ai deja sous la main comme comme:

La bd
create database mabase;

create table videos(id int(100), titre vrachar(255), description varchar(255), today(date), primary key(id));

Je veux enregistrer les videos dans la bd et les afficher sur une page pour qu'on puisse les visualiser et les lire une à une. Merci!

      <!DOCTYPE html>   
   <html id="bloc_page">
        <head>
	        <title>FORMULAIRE D'ENREGISTREMENT D'UNE VIDEO</title>
			<link rel="stylesheet" href="sogim.css" />
			<link rel="stylesheet" href="css/bootstrap.min.css"/>
            <link rel="stylesheet" href="css/bootstrap-theme.min.css"/> 			
		</head>
		    <header>
			    <?php  include('entete.php'); ?>
			</header>
	        <body>	
                <center><h2><u>Enregistrement d'une vidéo</u></h2></center>
				<form method="POST" action="info.php" enctype="multipart/form-data">
				    <div class="row">
					    <div class="col-md-4 col-sm-12 col-xs-12 form-group">
						    Titre<input type="text" name="titre" class="form-control" />
						</div>
						
						<div class="col-md-4 col-sm-12 col-xs-12 form-group">
						    Genre<input type="text" name="genre" class="form-control"/>
						</div>
						
						<div class="col-md-4 col-sm-12 col-xs-12 form-group">
						    Description<input type="text" name="description" class="form-control"/>
						</div>
					</div>
					
					<div class="row">
						<div class="col-md-4 col-sm-12 col-xs-12 form-group">
						    Vidéo 1<input type="file" name="video1"  class="form-control"/> <br/>
						</div>
						<div class="col-md-4 col-sm-12 col-xs-12 form-group">
							Vidéo 2<input type="file" name="video2"  class="form-control"/> <br/>
						</div>
						<div class="col-md-4 col-sm-12 col-xs-12 form-group">
							Vidéo 3<input type="file" name="video3" class="form-control"/> <br/>
						</div>
					</div>
					
					<div class="row">
                        <div class="col-md-3 col-sm-12 col-xs-12 form-group">
						    <input type="submit" name="valider" value="valider" class="form-control btn btn-primary"/>
						</div>						
					    <div class="col-md-3 col-sm-12 col-xs-12 form-group">
						    <input type="reset" name="annuler" value="Annuler" class="form-control btn btn-primary"/>
						</div>
					</div>
				</form>
			        
					<?php
					    // location::header(index.php);
					?>
					        <footer>
				                <?php  include('new_footer.php'); ?>
				            </footer>
			    <script src="js/jquery.js">	</script>
				<script src="js/bootstrap.min.js"></script>
				</body>
	</html>




Ensuite la page info.php 

                <html id="bloc_page">
        <head>
	        <title>FORMULAIRE D'ENREGISTREMENT D'UNE VIDEO</title>
			<link rel="stylesheet" href="sogim.css" />
			<link rel="stylesheet" href="css/bootstrap.min.css"/>
            <link rel="stylesheet" href="css/bootstrap-theme.min.css"/> 			
		</head>
		    <body>
	<?php 
	    /* include('fonctions.php');  */
	?>  	
				    <?php 
					
					                    try
		                                                    {
		                                                        //On se connecte à mysql
																$bdd = new PDO ('mysql:host=localhost;dbname=webtv','root','');
		                                                       //$bdd = new PDO ('mysql:host=mysql.hostinger.fr;dbname=u930130525_sogim','u930130525_sogim','MotDePass');
		                                                    }
		                                                        catch(Exception $e)
			                                                        {
				                                                        //En cas d'erreur, on affiche un message et on arrète tout
				                                                        die('Erreur:'.$e->get_Message());
				                                                    } 
																	
					if (isset($_POST['valider']))
					/* if (isset($_POST['model']) and (!empty($_POST['model']))) */
					{
					    $titre=$_POST['titre'];
					    $genre=$_POST['genre'];
						$description=$_POST['description']; 
					    //On construit la date d'aujourd'hui strictement comme sql la construit
						$today = date("y-m-d");
							// teste de l'envoi du fichier PHOTO 1
                        if (isset($_FILES['video1'])  and  $_FILES['video1']['error']== 0 )
                            {
                                // teste de la grandeur de l'image
                                if ($_FILES['video1']['size'] <= 500000000)
                                  {
                                    // teste de la prise en compte du chemin et de l'extention du fichier
                                    $infosfichier = pathinfo($_FILES['video1']['name']);//on prend le nom du fichier
                                    $extension_upload = $infosfichier['extension']; //on prend l'extension du fichier
                                    $extensions_autorisees = array('mp4', 'avi', 'vob', 'flv','rmvb', 'wmv', 'swf','mpg','MP4', 'AVI','VOB','FLV','RMVB', 'WMV', 'SWF','MPG'); 
									//on prend les extensions autorisées            
									if (in_array($extension_upload, $extensions_autorisees))
                                        {
			                                move_uploaded_file($_FILES['video1']['tmp_name'], 'videos/mesvideos/'.basename($_FILES['video1']['name']));
                                            $video1=$_FILES['video1']['name'];
											/* echo "L'envoi de la video a bien réussi. Merci!"; */
                                        }
                                  }
                            }
							// teste de l'envoi du fichier
                        if (isset($_FILES['video2'])  and  $_FILES['video2']['error']== 0 )
                            {
                                // teste de la grandeur de l'image
                                if ($_FILES['video2']['size'] <= 500000000)
                                  {
                                    // teste de la prise en compte du chemin et de l'extention du fichier
                                    $infosfichier = pathinfo($_FILES['video2']['name']);//on prend le nom du fichier
                                    $extension_upload = $infosfichier['extension']; //on prend l'extension du fichier
                                    $extensions_autorisees = array('mp4', 'avi', 'vob','flv','rmvb', 'wmv', 'swf','mpg','MP4', 'AVI','VOB','FLV','RMVB', 'WMV', 'SWF','MPG'); 
									//on prend les extensions autorisées            
									if (in_array($extension_upload, $extensions_autorisees))
                                        {
			                                move_uploaded_file($_FILES['video2']['tmp_name'], 'videos/mesvideos/'.basename($_FILES['video2']['name']));
                                            $video2=$_FILES['video2']['name'];
											
                                        }
                                  }
                            }
							// teste de l'envoi du fichier
                        if (isset($_FILES['video3'])  and  $_FILES['video3']['error']== 0 )
                            {
                                // teste de la grandeur de l'image
                                if ($_FILES['video3']['size'] <= 500000000)
                                  {
                                    // teste de la prise en compte du chemin et de l'extention du fichier
                                    $infosfichier = pathinfo($_FILES['video3']['name']);//on prend le nom du fichier
                                    $extension_upload = $infosfichier['extension']; //on prend l'extension du fichier
                                    $extensions_autorisees = array('mp4', 'avi', 'vob','flv','rmvb', 'wmv', 'swf','mpg','MP4', 'AVI','VOB','FLV','RMVB', 'WMV', 'SWF','MPG'); 
									//on prend les extensions autorisées            
									if (in_array($extension_upload, $extensions_autorisees))
                                        {
			                                move_uploaded_file($_FILES['video3']['tmp_name'], 'videos/mesvideos/'.basename($_FILES['video3']['name']));
                                            $video3=$_FILES['video3']['name'];
											/* echo "L'envoi de la video a bien réussi. Merci!"; */
                                        }
                                  }
                            }

							        echo "L'envoi de la vidéo a bien réussi. Merci!";
                                          if(empty($video1) /* OR empty($photo2) OR empty($photo3) */)
                                            {
	                                            $video="pasimage1.jpeg";
												
                                            }				        
													// Insertion des données à l'aide d'une requête preparée	
						                    $req = $bdd->prepare('INSERT INTO videos(titre, genre, description, today, video1, video2, video3) 
						                    VALUES(:titre, :genre, :description, :today, :video1, :video2, :video3)');
						 /*  var_dump($photo2); */
						                    $req->execute(array(
						                    'titre'=>$_POST['titre'], 'genre'=>$genre, 'description'=>$description, 'today'=>$today, 'video1'=>$video1, 'video2'=>$video2, 'video3'=>$video3)) 
											        or die (print_r($req->errorInfo())); 
						                    
											 if ($req)
											    {
												 echo 'Enregistrement effectue';
												}
												else
												    {
													echo 'Mauvais enregistrement!';
													} 
													
															    if (isset($_POST['video1']))
																    {
																	    echo ('operation.php');
																		echo 'Vous avez choisi '.$id_videos;
																	}															
					}		                                					
                 ?>                             
                                    <!--    PAGINATION NUMEROTATION DE PAGE     PAGINATION NUMEROTATION DE PAGE    -->				 
			                                        <?php 
														$page = isset($_GET['page']) ? $_GET['page'] : 1;
														$page_offset = ($page - 1) * 5;
														$total ='';
														$pagination ='';
                                                        
														//connect_bd();  CONNEXION A LA BASE DE DONNEES
														//include ('fonctions.php');
														$total_element = $bdd->query("SELECT * from videos");
														$total = $total_element->rowCount(); /* or die (print_r($total_element->errorInfo())) */
														$pagination = $total/5;
														 
													$req=$bdd->query("select * from videos ORDER BY id_videos DESC LIMIT $page_offset, 5 ") or die(print_r($bdd->errorInfo()));
                                                       
														 //var_dump();													
														 while($donnees = $req->fetch())
                                                            { 
															 echo '<table border="1px"; width:800px; height:500px; color="#999";>
															 <tr>
															 <td>     Numero: '.$donnees['id_videos'].'</br>Titre: '.$donnees['titre'].'</br>Genre: '.$donnees['genre'].'</br>Description:'.$donnees['description'].'</br>Date: '.$donnees['today'].'</br></td>'.'<td><a href="operation.php?id='.$donnees['id_videos'].'">
															 <:= "//SRV_files/videos/mesvideos/'.$donnees['video1'].'"style=" width:220px; height:150px; color="#0000"; /></a></br></br></td></tr></table>';
	
															echo '<a href="operation.php?id='.$donnees['id_videos'].'"> Regarder </a>               ';  
															echo '<a href="details.php?id='.$donnees['id_videos'].'"> LIRE </a>';
															}	
                                                                $req->closeCursor(); 
																
													echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
                                                    for($i=1; $i<=$pagination; $i++) //On fait notre boucle
                                                        {
                                                            if($i==$page) //Si il s'agit de la page actuelle...
                                                                {
                                                                    echo ' [ '.$i.' ] '; 
                                                                }	
                                                                else //Sinon...
                                                                    {
                                                                        echo ' <a href="index.php?page='.$i.'">'.$i.'</a> ';
                                                                    }
                                                        }
                                                    echo '</p>';													
			                                        ?>
        </body>
	<html>