php根据文件地址上传f文件,php 文件成对上传

还是刚开始学写网站时候写的代码,比较差,简单保存一下吧

$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");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值