还是刚开始学写网站时候写的代码,比较差,简单保存一下吧
:
$prj_id = $_POST['prj_id'];
$ver_id = $_POST['ver_id'];
$f = new func();
$prj_name = $f->getProject_name($prj_id);
$ver_name = $f->getVersion_name($prj_id, $ver_id);
//生成要存放pdb和exe文件的目录
$f = new func();
$dir=Yii::getPathOfAlias('webroot').'/projects/'.$prj_id.'/'.$ver_id.'/upload';
if (!is_dir($dir))
{
mkdir($dir);
}
$attach1 = CUploadedFile::getInstancesByName('upload_file1');
$attach2 = CUploadedFile::getInstancesByName('upload_file2');
if(count($attach1)!=count($attach2))
{
echo '上传的文件不匹配,请重新上传!';
$this->redirect("index.php?r=project/upload&prj_id=$prj_id&ver_id=$ver_id");
}
else
{
$attachment = array();
$size = count($attach1);
Yii::log('上传文件----'.$size,'error','php');
for($i=0;$i
{
//这里没有加入exe或dll与pdb一一对应的判定!后续需要加入
$exe_or_dll_name = $attach1[$i]->name;
$pdb_name = $attach2[$i]->name;
$exe_or_dll_file = $dir.'/'.$exe_or_dll_name;
$pdb_file = $dir.'/'.$pdb_name;
$status = $attach1[$i]->saveAs($exe_or_dll_file); //保存文件
$status = $attach2[$i]->saveAs($pdb_file);
//把上传文件的保存的路径,先组成array,然后在转码成jsonjson格式存放到数据库
$vid = $f->getVersion_id($prj_id, $ver_name);
$len = strlen($exe_or_dll_name);
if(!substr_compare($exe_or_dll_name,'.exe',$len-4,4,FALSE))
{
$extname = 'exe';
}
else
{
$extname = 'dll';
}
$mainname = substr($exe_or_dll_name,0,$len-4);
$tableName = 'cc_ver_funcinfo_'.$vid.'_'.$mainname.'_'.$extname;//生成对应的exe或dll的函数列表名称
$pair =array('extname'=>$extname,
'mainname'=>$mainname,
'binfile'=>$exe_or_dll_file,
'pdbfile'=>$pdb_file,
"tablename"=>$tableName,
"uploader"=>$_SESSION['username']
);
$attachment[] = $pair;
}
$json = json_encode($attachment);
Yii::log('---------'.$prj_name.'----'.$ver_name,'error','php');
$f->setVersionAttachment($prj_id,$ver_id,$json); //把json文件写入对应项目版本的attachment选项
$f->generateBase($prj_id, $ver_id); //处理attachment中所有的文件,处理后的文件放到该版本下的base文件夹,里面调用了processAllFiles函数
Yii::log('上传文件,生成base文件结束','error','php');
$upload ='upload';
$this->redirect("index.php?r=project/showVersion&prj_id=$prj_id&ver_id=$ver_id&upload=$upload");
//$this->redirect("index.php?r=project/showVersion&prj_id=$prj_id&ver_id=$ver_id");
}