';
$str.='檔案類型:'
." {$_FILES[upFile][type][$k]}
";
$str.='檔案大小:'
." {$_FILES[upFile][size][$k]}
";
if(file_exists($meaningFile)){
$meaning=file_get_contents($meaningFile);
$str.='檔案的內容描述: '.$meaning.'
';
}
$link=dirname($_SERVER[HTTP_REFERER]).'/'
.basename(MY_UPLOAD_DIR).'/'
.basename($dfname);
$str.='請利用以下連結下載檔案:
'
."'."$link";
}
else{ // 複製失敗
$str='無法複製 '.$_FILES[upFile][name][$k]
.' 檔案到上傳目錄下';
}
}
else{
$str="檔案上傳失敗...";
}
// 將一筆上傳記錄轉變成網頁的表格的一筆記錄
$record[]='
'.$_FILES[upFile][name][$k].' | '
.''.$str.' |
';
}
}
$upResult=implode('',$record);
}
//---------------------- 設定為第 n 次(非第 1 次) ----------------
function setN($fn){
$fh=fopen($fn,'r+');
do{
// 嘗試鎖定檔案
if(flock($fh,LOCK_EX|LOCK_NB)){
// 鎖定成功, 存取計數器內容
$Counter=fgets($fh); // 讀取內容後, 檔案指位器已到檔尾
$Counter=$Counter + 1;
rewind($fh); // 檔案指位器回到檔頭
ftruncate($fh,0); // 檔案內容清空
fputs($fh,$Counter); // 寫入計數器內容
// 解除鎖定
flock($fh,LOCK_UN);
// 設定完成, 跳出迴圈
break;
}
else{
// 鎖定失敗的作業處理
usleep(1000); // 千分之一秒後再嘗試鎖定檔案
}
}while(true);
fclose($fh);
}
//---------------------- 嘗試設定為第 1 次 ----------------------
function setFirst($fn){
// 開啟檔案
$fh=fopen($fn,'w');
// 嘗試鎖定檔案
if(flock($fh,LOCK_EX|LOCK_NB)){
// 鎖定成功, 設定為第 1 次
fputs($fh,'1');
// 解除鎖定
flock($fh,LOCK_UN);
// 關閉檔案
fclose($fh);
}
else{
// 鎖定失敗, 設定為非第 1 次
setN($fn);
}
}
//---------------------- 流水號程式 ----------------------
function my_sn(){
$fn='Counter.txt';
if(file_exists($fn)){
setN($fn);
}
else{
setFirst($fn);
}
// 傳回計數器內容
return file_get_contents($fn);
}
//---------------------- 建立目錄 ----------------------
function my_mkdir($dir=''){
if(empty($dir)){
echo '請設定目錄...';
}
else{
if(!file_exists($dir)){
mkdir($dir);
}
}
return;
}
?>
檔案分享目錄