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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值