Insertion d'un fichier lourd dans un champ blob

Signaler
Messages postés
19
Date d'inscription
mardi 14 août 2018
Statut
Membre
Dernière intervention
9 janvier 2019
-
Messages postés
8
Date d'inscription
jeudi 16 août 2018
Statut
Membre
Dernière intervention
19 août 2018
-
Bonjour, J'essaie de stoker mon fichier video dans le champ blob, après execution il y a ce code d'erreur qui s'affiche: Array ( [0] => HY000 [1] => 2006 [2] => MySQL server has gone away ) 1
aider moi svp voici mon code:
<?php
session_start();
require_once('config.php');
if(isset($_POST['publier']))
{
if($_FILES['fichier'] AND $_FILES['fichier']['error']==0)
{
$nom=htmlspecialchars($_FILES['fichier']['name']);
$titre=htmlspecialchars($_POST['titre']);
$type=strrchr($nom,'.');
$extention=array('.pdf','.mp4','.msi','.flv','.3gp');
$fichier=addslashes(file_get_contents($_FILES['fichier']['tmp_name']));
$taille=$_FILES['fichier']['size'];
if(in_array($type,$extention))
{
if(isset($_POST['type']) and isset($_POST['categorie']))
{

if($_POST['type']=='video')
{
//insertion dans la table fichier_video
if($_POST['categorie']=='programmation')
{
$categorie="programmation";
$insert=$bdd->prepare('insert into fichier_video(nom,titre,type,categorie,video,taille) value(?,?,?,?,?,?)') or die(print_r($bdd->errorinfo()));
$insert->execute(array($nom,$titre,$type,$categorie,$fichier,$taille)) or die(print_r($insert->errorinfo()));
//insertion de la date dans la table poster
$insert=$bdd->exec('insert into poster(date_ajout) value(CURDATE())') or die(print_r($bdd->errorinfo()));
}
elseif($_POST['categorie']=='reseau')
{
$categorie="reseau";
$insert=$bdd->prepare('insert into fichier_video(nom,titre,type,categorie,video,taille) value(?,?,?,?,?,?)') or die(print_r($bdd->errorinfo()));
$insert->execute(array($nom,$titre,$type,$categorie,$fichie,$taille)) or die(print_r($insert->errorinfo()));
//insertion de la date dans la table poster
$insert=$bdd->exec('insert into poster(date_ajout) value(CURDATE())') or die(print_r($bdd->errorinfo()));
}
elseif($_POST['categorie']=='autres')
{
$categorie="autre";
$insert=$bdd->prepare('insert into fichier_video(nom,titre,type,categorie,video,taille) value(?,?,?,?,?,?)') or die(print_r($bdd->errorinfo()));
$insert->execute(array($nom,$titre,$type,$categorie,$fichier,$taille)) or die(print_r($insert->errorinfo()));
//insertion de la date dans la table poster
$insert=$bdd->exec('insert into poster(date_ajout) value(CURDATE())') or die(print_r($bdd->errorinfo()));
}
}
}
}
else{
?>
<style>
.erreur_type {
height: 50px;
background-color: crimson;
color: white;
text-align: center;
font-size: 20px;
text-decoration-line: underline;
}

</style>
<div class="erreur_type">
<?php echo'Erreur de type de fichier'.'<br/>'.'Ressayez svp '.$_SESSION['pseudo'];?>
</div>
<?php
include('../templets/envoiefichier.php');
}
}
}
?>

2 réponses

Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
328
Bonjour

Commence par appliquer ce que je t'ai donné conernant la façon de poster ton code sur le forum ainsi que la façon de l'écrire (gestion des erreurs pdo et erreurs php)
Après on acceptera peut-être de t'aider...

Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
328
Et puis.. je t'avais déconseillé de stocker directement en blob
Mais vu que tu y tiens tellement... va donc augmenter le
max_allowed_packet de ton mysql. Ca devrait aider à contourner le souci.
Messages postés
19
Date d'inscription
mardi 14 août 2018
Statut
Membre
Dernière intervention
9 janvier 2019

Je veux inserer directement en blob parce-que je maitrise pas l'autre methode.
Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
328 >
Messages postés
19
Date d'inscription
mardi 14 août 2018
Statut
Membre
Dernière intervention
9 janvier 2019

Ben tu ne maîtrises pas celle la non plus de toutes façons...
Messages postés
19
Date d'inscription
mardi 14 août 2018
Statut
Membre
Dernière intervention
9 janvier 2019

Où je peux retrouver max_allowed_packet parce_que j'ai cherché dans php.in et my.ini.
Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
328 >
Messages postés
19
Date d'inscription
mardi 14 août 2018
Statut
Membre
Dernière intervention
9 janvier 2019

Tu ne sais pas chercher sur internet ?
Voila ine solution possible :
Il faut ajouter la ligne ci-dessous dans le fichier my.ini, section [mysqld]
max_allowed_packet=32M
Messages postés
8
Date d'inscription
jeudi 16 août 2018
Statut
Membre
Dernière intervention
19 août 2018

modifier les parametres de le fichier php.ini
max file size=??????M