Upload De Fichiers

Bonjour, je suis une étudiante et dans le cadre d’une discipline je dois programmer une application web qui permette de faire la gestion de fichiers de jeux…

la structure de ma base de donnée est la suivante:

– Database: games


– Table structure for table game

CREATE TABLE IF NOT EXISTS game (

idGame int(11) NOT NULL AUTO_INCREMENT,

name varchar(75) NOT NULL,

primaryScreen blob NOT NULL,

game_content blob NOT NULL,

category varchar(45) NOT NULL,

platform varchar(45) NOT NULL,

device varchar(45) NOT NULL,

description varchar(250) NOT NULL,

funcionalities varchar(150) NOT NULL,

PRIMARY KEY (idGame)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


– Table structure for table screen

CREATE TABLE IF NOT EXISTS screen (

idScreen int(11) NOT NULL AUTO_INCREMENT,

id_Game int(11) NOT NULL,

image longblob NOT NULL,

PRIMARY KEY (idScreen),

KEY id_Game (id_Game)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

– Constraints for dumped tables

– Constraints for table screen

ALTER TABLE screen

ADD CONSTRAINT screen_ibfk_1 FOREIGN KEY (id_Game) REFERENCES game (idGame);

j’ai suivi le tutoriel

My link

la seul diférence est que je ne souhaite guarder dans mas base de données (je ne sais pas si c’est possible) que le contenu du fichier.

dans mon model:

public function beforeSave()

    {


    if($file=CUploadedFile::getInstance($this,'game_uploaded'))


    {


        // $this->file_name=$file->name;


        //$this->file_type=$file->type;


        //$this->file_size=$file->size;


        $this->game_content=file_get_contents($file->tempName);


        //$file->saveAs('path/to/uploads');


        


    }


    if($file=CUploadedFile::getInstance($this,'primscreen'))


    {


        //$this->file_name=$file->name;


        //$this->file_type=$file->type;


        //$this->file_size=$file->size;


        $this->primaryScreen=file_get_contents($file->tempName);


        //$file->saveAs('path/to/uploads');


    }


    





    return parent::beforeSave();


    }

l’erreur est la suivante:PHP warning

PDOStatement::execute(): MySQL server has gone away

Avez-vous idée de ce que ce passe?

Salut Silvia,

cette erreur peut être due au fait qu’une requête à la base de donnée à pris trop de temps … enfin, c’est ce qui est dit ici.

A priori je dirai que c’est à cause de de l’insertion d’une 'image trop “lourde” dans la table. Personnellement je ne pense pas que sauvegarder une image dans un BDD soit une bonne chose. Autant laisser les images dans un répertoire quelconque, et insérer les infos requises pour accéder au fichier (par exemple le nom du fichier).

ciao

B)

merci :) j’ai résolu le problème… au lieu de guarder le fichier dans la base de donnée, je garde le nom du fichier. Le fichier étant guarder dans mon système de fichier :)