2013-03-27 190 views
0

我是一名葡萄牙學生,我正在嘗試爲遊戲管理實施一個網絡應用程序。yii上傳文件錯誤

的表結構game

`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`) 
) 

`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`) 
) 

我讀了如何在一個數據庫 http://www.yiiframework.com/wiki/95/saving-files-to-a-blob-field-in-the-database

文件上傳到BOLB一個警予教程,唯一的區別是,在函數之前保存我只想保留文件的內容(我可以做到這一點或我必須保留文件名,文件擴展名...) 所以我喜歡這種模式:

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(); 
} 

但是當我嘗試,我有此錯誤:

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

可能有人幫助我嗎?
我很欣賞任何建議。謝謝:)

回答

0

在您的配置文件

嘗試它的主機從把 「localhost」 到 「127.0.0.1」

0

嘗試保存到數據庫

汜trabalho前使用BASE64_ENCODE!

0
  1. MySQL server has gone away的一個常見原因是由於超時。儘量增加default_socket_timeout像這樣:

    ini_set('default_socket_timeout', 300); 
    
  2. 另一種可能是斑點的大小。嘗試在php.ini

    post_max_size 
    upload_max_filesize 
    
提高上傳大小限制