upload + conversion video

Nuanch
Invité n'ayant pas de compte PHPfrance

11 nov. 2010, 23:38

Bonjour, je poste ce message dans la section php avancé car je pense que la gestion d'upload de video et l'utilisation de ffmpeg n'est pas pour debutant (bien que je ne sois pas moi même un expert en php) désolé si je fais une erreur.

Alors j'ai mon code qui me met un Parse error: parse error in video_bd.php on line 40 (la ligne 40 est celle avec le exec ffmpeg)

voici le code:
<?php

try
{
        $bdd = new PDO('mysql:host=localhost;dbname=videos', 'root', '');

}
 
catch(Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
   
   
$titre = $_POST['titre'];
$vid = basename($_FILES['vid']['name']);
$date = date("d-m-Y");

$req = $bdd->prepare('INSERT INTO video(id, titre, note, date, vid) VALUES("", :titre, "", :date, :vid)');
$req->execute(array(
	'titre' => $titre,
	'vid' => $vid,
	'date' => $date
	));
try
{
	
    if (isset($_FILES['vid']) AND $_FILES['vid']['error'] == 0)
{
        
        if ($_FILES['vid']['size'] <= 1000000000000000000)
        {
                
                $infosfichier = pathinfo($_FILES['vid']['name']);
                $extension_upload = $infosfichier['extension'];
                $extensions_autorisees = array('avi', 'flv', 'mp4', 'wma', 'mov');
							
                if (in_array($extension_upload, $extensions_autorisees))
                {
				    exec('ffmpeg -i '$vid'.'$extension_upload' -s 180x120 -ar 44100 '$vid'.flv', NULL, $return);
                    if (0 == $return)
					{
                       echo 'Conversion OK';
                    }
                    else 
					{
                       echo 'Echec lors de la conversion';
                    }
					   
                    move_uploaded_file($_FILES['vid']['tmp_name'], 'upload/' . basename($_FILES['vid']['name']));
				    echo "L'envoi de la video a bien été effectué !";
                }
        }
}

}

catch(Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}



echo 'Les infos ont bien été ajoutées a la Base de donnée !';
    
?>
Quelqu'un saurait-il pourquoi ce bout de code ne fonctionne pas ?
Merci d'avance :)

Nuanch
Invité n'ayant pas de compte PHPfrance

12 nov. 2010, 00:00

J'ai trouvée l'erreur qui était une erreur basique de concaténation mais j'ai toujours le message :
Fatal error: Only variables can be passed by reference in C:\wamp\www\video_bd.php on line 40
exec('ffmpeg -i ' .$vid. '.' .$extension_upload. ' -s 180x120 -ar 44100 ' .$vid. '.flv', NULL, $return);

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 nov. 2010, 17:15

Bonjour,
Fatal error: Only variables can be passed by reference in C:\wamp\www\video_bd.php on line 40
Si tu remplaces NULL par une variable bidon ($null) tu as le même message d'erreur?
exec('ffmpeg -i ' .$vid. '.' .$extension_upload. ' -s 180x120 -ar 44100 ' .$vid. '.flv', $null, $return);
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 2 Messages

14 nov. 2010, 14:28

ah non la ça m'écris que les infos sont bien ajoutées a la base de donnée mais ça ne m'écris pas que l'envoi de la video a bien été effectué :roll: ... Merci quand même :)

Petit nouveau ! | 2 Messages

14 nov. 2010, 22:00

Bon et bien maintenant je ne sais pas pourquoi j'obtient :

Notice: Undefined index: titre in C:\wamp\www\video_bd.php on line 36
Notice: Undefined index: vid in C:\wamp\www\video_bd.php on line 37
Les infos ont bien été ajoutées a la Base de donnée !

c'est a dire les lignes:
$titre = $_POST['titre'];
$vid = basename($_FILES['vid']['name']);
alors que dans le formulaire j'ai bien:
<form method='post' action='video_bd.php' enctype='multipart/form-data'>

  Entrez le titre de la video : <input type='text' name='titre'><br />
				 
  Uploadez la video : <input type='file' name='vid' /><br />		 
    		 
 <input type='submit' value='valider'></form>