php 斷點續傳以及100 後台zip解壓

2022-07-16 13:48:12 字數 1894 閱讀 1073

前台部分

申請人材料zip包

上傳的檔案型別只支援zip格式

0%

zip格式

$post=$this->input->post();

$uploadid='';

//首次上傳

if ($post['uploadid']=='')

//檔名稱

$blockname = $uploadid.'.block';

//檔案上傳路徑

$dir_path='/data/zip/'.intval($post['proj_id']).'/';

mkdirs($dir);

if (file_exists($dir.$post['filename']))

//塊檔案

$blockpath=$dir.$blockname;

if (file_exists($blockpath))

$data=file_get_contents($_files['data']['tmp_name']);

//寫塊檔案

file_put_contents($blockpath,$data);

//合併塊檔案

if ($post['index']==$post['total'])

file_put_contents($filename,$bloacks);

}echo json_encode(["code"=>1, "msg" => "上傳成功~",'path'=>$filename_path]);

/**

* 檔案編碼

** @param [type] $filename

* @return void

*/function encodesutf8($name)else

return $filename;

}header('content-type:text/html;charset=utf-8');

$proj_id=(int)$this->input->get('proj_id');

$ptype=(int)$this->input->get('ptype');

if($this->input->get('act') == 'do')

// $data=array(

// 'filename'=>$_files['zipupload']['name'],

// 'filepath'=>'/data/upload/zip/'.$this->upload->file_name,

// );

$proj_id=(int)$this->input->post('proj_id');

$ptype=(int)$this->input->post('ptype');

$file_path=$this->input->post('file_path');

$zip = new \ziparchive;

if (file_exists($zipfile))

$docnum = $zip->numfiles;

$annex=[

'proj_id'=>$proj_id,

'type'=>$ptype,

];$num_co=0;

for($i = 0; $i < $docnum; $i++)

copy('zip://'.$zipfile.'#'.$zip->getnameindex($i), $path.$statinfo);

} else

}if (count($bool)==$num_co) else

}}

HTTP 斷點續傳

客戶端請求域 range 格式如下例子 第乙個500位元組 位元組偏移量0 499,包括0和499 range bytes 0 499 第二個500位元組 位元組偏移量500 999,包括500和999 range bytes 500 999 最後500位元組 位元組偏移量9500 9999,包括9...

IOS斷點續傳

asihttprequest可以實現斷點續傳。網上有一些介紹類似使用 request setallowresumeforfiledownloads yes 不過,通過asihttprequest的非同步請求以及delegate還是可以實現斷點續傳的。本文還是以grails編寫斷點續傳伺服器端為例。非...

linux斷點續傳

在linux伺服器上經常要用scp傳輸大檔案,可能由於網路等原因出現間接性中斷,導致傳輸一半的檔案突然中斷。其實scp是可以續傳的,它需要rsync以及它的ssh協議 舉例如下 rsync p rsh ssh home.tar 192.168.205.34 home home.tar,再輸出密碼後,...