'; $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; } ?> 檔案分享目錄

檔案上傳結果
上傳檔案名稱 上傳結果摘要