2013-03-27 127 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 
    
提高上传大小限制