Upload de video dans une base de données
Résolu
persepolis7
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
persepolis7 Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
persepolis7 Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je n'arrive pas à uploader des videos dans ma base de données.
Voici mon code :
Voici les erreurs :
EDIT : correction des balises de code (jordane)
je n'arrive pas à uploader des videos dans ma base de données.
Voici mon code :
<?php session_start(); if(isset($_SESSION['Id'])){ if( !empty($_POST['product_name']) ){ if(!empty($_FILES)){ $file_name = $_FILES['upload_video']['name']; $file_type = $_FILES['upload_video']['type']; $file_tmp_name = $_FILES['upload_video']['tmp_name']; $file_extension = strrchr($file_name, "."); $file_destination = '../video/'.$file_name; $valid_extensions = array( '.AVI', '.avi', '.MOV', '.mov', '.MPG', '.mpg', '.MP3', '.mp3', '.MP4', '.mp4' ); if( in_array( $file_extension, $valid_extensions )){ if(move_uploaded_file( $file_tmp_name, $file_destination )){ $create_product = $database->prepare( "INSERT INTO create_product(IdUser, productName, videos) VALUES(?, ?, ?)" ); $create_product->execute(array( $_SESSION['Id'], $_POST['product_name'], $file_destination )); echo "video has been uploaded"; }else{ echo "video hasnt been uploaded"; } }else{ echo "valid extensions '.AVI', '.avi', '.MOV', '.mov', '.MPG', '.mpg', '.MP3', '.mp3', '.MP4', '.mp4' "; } echo 'Nom : '.$file_name; echo 'Extension : '.$file_extension; var_dump($_FILES); } }else{ echo "empty product name"; } }else{ echo "id doesnt exist"; } include "../templates/create_product.phtml";
Voici les erreurs :
video hasnt been uploaded Nom : video_2.mp4 Extension : .mp4 array (size=1) 'upload_video' => array (size=5) 'name' => string 'video_2.mp4' (length=11) 'type' => string '' (length=0) 'tmp_name' => string '' (length=0) 'error' => int 1 'size' => int 0
EDIT : correction des balises de code (jordane)
A voir également:
- Upload de video dans une base de données
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Insérer une vidéo dans powerpoint - Guide
- Montage video windows - Guide
- Comment télécharger une vidéo youtube - Guide
- Base de registre - Guide
2 réponses
Bonjour,
Primo.. ton souci concerne le PHP et non la BDD.
Je déplace donc ta question dans le bon forum.
Ensuite, le message qui apparait est lié au if
Ce qui indique qu'il n'a pas pu uploader le fichier sur le serveur...
Plusieurs raisons possibles :
Le répertoire de destination n'existe pas ou n'a pas les droits suffisants
Ou.. tes variables
ne sont pas assez élevées par rapport à la taille de ta video.
Tu peux aussi modifier le time_limit via les variables
Toutes ces variables sont modifiables dans ton PHP.ini
Une fois la modification effectuée, il te faut redémarrer apache.
Primo.. ton souci concerne le PHP et non la BDD.
Je déplace donc ta question dans le bon forum.
Ensuite, le message qui apparait est lié au if
if(move_uploaded_file( $file_tmp_name, $file_destination )){
Ce qui indique qu'il n'a pas pu uploader le fichier sur le serveur...
Plusieurs raisons possibles :
Le répertoire de destination n'existe pas ou n'a pas les droits suffisants
Ou.. tes variables
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
ne sont pas assez élevées par rapport à la taille de ta video.
Tu peux aussi modifier le time_limit via les variables
max_execution_time
max_input_time
Toutes ces variables sont modifiables dans ton PHP.ini
Une fois la modification effectuée, il te faut redémarrer apache.
Bonjour
'error' => int 1
indique clairement que ton fichier est trop long :
https://www.php.net/manual/fr/features.file-upload.errors.php
Quelle est la valeur de upload_max_filesize dans ton fichier php.ini ?
Si tu ne sais pas, crée un script qui contient seulement
et tu verras plein de choses sur ta configuration.
D'autre part :
je suis en longblob pour le champs videos dans ma bdd
C'est un très mauvais choix, car contrairement à ce que tu sembles croire, tu n'enregistres pas tes vidéos dans ta base, seulement les noms de fichiers. Les vidéos elle-mêmes, tu les enregistres dans le dossier ../video/ comme indiqué par
'error' => int 1
indique clairement que ton fichier est trop long :
https://www.php.net/manual/fr/features.file-upload.errors.php
Quelle est la valeur de upload_max_filesize dans ton fichier php.ini ?
Si tu ne sais pas, crée un script qui contient seulement
<?php phpinfo();
et tu verras plein de choses sur ta configuration.
D'autre part :
je suis en longblob pour le champs videos dans ma bdd
C'est un très mauvais choix, car contrairement à ce que tu sembles croire, tu n'enregistres pas tes vidéos dans ta base, seulement les noms de fichiers. Les vidéos elle-mêmes, tu les enregistres dans le dossier ../video/ comme indiqué par
$file_destination = '../video/'.$file_name;. Le champ videos devrait donc être un champ texte
mes videos ont une taille inférieur à 10Mo et je suis en longblob pour le champs videos dans ma bdd...
Y'aurait-il une autre manière de permettre un upload de videos ?
Je répète .... le message d'erreur provient de ton IF moveupload ...donc rien à voir avec ta bdd.
De plus... on n'évite de stocker des fichiers directement dans la bdd... on n'y stocke que le chemin vers le fichier.
Mais bon.. ton souci se trouve bien au niveau de l'upload du fichier sur le serveur... donc relis (et applique) ce que je t'ai indiqué dans ma précédente réponse...