上傳檔案櫃:修訂版本之間的差異

出自六年制學程
跳轉到: 導覽搜尋
嘉禾書院(學生使用)
布署備註
 
(未顯示2位用戶所作出之111次版本)
第 1 行: 第 1 行:
 
[[分類:LiteSite]]
 
[[分類:LiteSite]]
 +
==布署備註==
 +
===○、待施工===
 +
#copyIndex_thumb.php 和 thumb.php:兩個檔內容差不多,不知道幹什麼?把 jendo.pensieveImg 儲思盆圖照,撐出九千多筆
 +
#*<span style="color:red">芸伍2024.03.08標註 已解決  建議留thumb.php即可</span>
 +
#drawword.png ?
 +
#*<span style="color:red">芸伍2024.03.08標註 未知  建議刪除</span>
 +
#影片縮圖
 +
#*目前在影片資料夾中(\\DS218\web\newspaperCutting\videos),因為firefox無法載入mp4影片,所以又回去尋求FFmpeg的程式碼這條路,但是在linux系統下執行仍然有問題,目前尚無法整合進php檔案中,現在的方法是創建一個screenshot.sh ,在windows系統中進入伺服器,用FFmpeg的方法批次處理影片檔截圖,再存進縮圖資料夾。
 +
#*已經確定不是換行問題,windows可執行screenshot.sh,linux可執行screenshot_linux.sh,但是問題還是在ffmpeg的程式碼
 +
#*現在將輸出格式改為 apng 即可輸出,但仍須在作業系統下,取得 root 權限並以命令列才可以執行
 +
#*#將 /usr/local/bin/ffmpeg 改成 http / http 沒用
 +
#*#將 /usr/local/bin/ffmpeg 改成 777 也沒用
 +
#*在 php 檔中仍然無法執行
 +
#*20230921 更新,若是 mkv 檔案(vp9編碼),即可在 adminNas 下輸出,mp4檔案仍不行
 +
#批次上傳檔案,然後指定資料夾生成縮圖
 +
#引導語
 +
#*若有空可以多新增一些引導語
 +
 +
===一、檔名使用字元===
 +
# 不禁用「()」:產生縮圖不會發生問題
 +
 +
===二、uploadFiles 下,無主的檔案可以顯示「刪」連結,並可以刪掉的清單列表===
 +
:\uploadFiles\gogopublic\WPND\JWCC\admin.php
 +
:\uploadFiles\丁志仁\family\admin.php
 +
:\uploadFiles\丁志仁\OCR\admin.php
 +
:\uploadFiles\丁志仁\剪報\admin.php
 +
:\uploadFiles\丁志仁\簽到領據\admin.php
 +
:\uploadFiles\嘉禾書院\徐恕禾\web\upload\admin.php
 +
:\uploadFiles\嘉禾書院\龔晉\web\admin.php
 +
:\uploadFiles\嘉禾書院\龔晉\web\upload\admin.php
 +
:\uploadFiles\嘉禾書院\龔晉\web\upload\images\admin.php
 +
:\uploadFiles\嘉禾書院\龔晉\web\upload\images\大鹿林道東線\admin.php
 +
:\uploadFiles\海星培力\自主學習典範的論述發展與實踐規畫\丁志仁\admin.php
 +
:\uploadFiles\跨校選修\192\admin.php
 +
:\uploadFiles\閉恩濡\admin.php
 +
:\uploadFiles\閉恩濡\GoGoPublic\admin.php
 +
 +
==基本功能==
 +
===一、權限規畫===
 +
<table class=nicetable>
 +
<tr><th colspan=2>index 使用功能</th><th>admin(登入)使用功能</th></tr>
 +
<tr><th>免<br/>登<br/>入</th><td>
 +
'''可視:'''<br/>
 +
1.檔案列表<br/>
 +
2.縮圖列表<br/>
 +
'''可操作:'''<br/>
 +
1.補縮圖<br/>
 +
2.蒐尋檔案
 +
</td><td rowspan=2>
 +
'''可視:'''<br/>
 +
1.檔案列表<br/>
 +
2.縮圖列表<br/>
 +
3.「選檔」「上傳」兩鈕<br/>
 +
4.「上 YT 片」鈕<br/>
 +
5.「刪」連結<br/>
 +
6.「建資料夾」按鈕<br/>
 +
'''可操作:'''<br/>
 +
1.補縮圖<br/>
 +
2.蒐尋檔案<br/>
 +
3.選檔上傳刪除檔案<br/>
 +
4.上傳 youtube 影片捷徑<br/>
 +
5.刪除自己上傳的檔案<br/>
 +
6.建資料夾<br/>&emsp;-----延伸操作-----<br/>
 +
7.刪無主檔案<br/>&emsp;-----超級使用者-----<br/>
 +
8.刪所有人的檔案
 +
</td></tr>
 +
<tr><th>登<br/>入</th><td>
 +
'''可視:'''<br/>
 +
1.檔案列表<br/>
 +
2.縮圖列表<br/>
 +
3.「選檔」「上傳」兩鈕<br/>
 +
'''可操作:'''<br/>
 +
1.補縮圖<br/>
 +
2.蒐尋檔案<br/>
 +
3.選檔上傳
 +
</td></tr>
 +
</table>
 +
 +
===二、檔案===
 +
====(一)全伺服器共用====
 +
# /GfUploadFiles.php
 +
#*諸變數:
 +
#*#$linkLikeButton:1×22 的細長點陣圖,水平複製可以模擬按鈕
 +
#*#$iconPath:諸 icon 所在路徑
 +
#*#$entryTypeIcon:檔案種類與 icon 的對照陣列,檔名種類為索引,icon 為值
 +
#*諸函式:
 +
#*::-----顯示處理區-----
 +
#*#linkLikeButton($showWords):將連結模擬為按鈕<br/>-----前置處理區-----
 +
#*#uploadFile:執行上傳動作<br/>-----檔案列表區-----
 +
#*#entrys:產生子路徑與檔案條目
 +
#*#get_youtube_title($ID):傳回影片的
 +
#*#showDir:秀出檔案與目錄列表,<span style='color:brown'>已實作「youtube 影片捷徑項」</span>
 +
#*#imgThumb:製作縮圖到到縮圖資料夾中
 +
#*#addPathsToIndex:新增路徑到索引檔中
 +
# searchIndex.php,嵌入 theme.php 中用 '/searchIndex.php?filePath=".$rootFilePath."path_index.txt' 去找到相應的目錄樹索引檔
 +
# dirThumb.php:重做一個資料夾的縮圖。嵌入 theme.php 最末的 javascript 呼叫。
 +
# /et/class/include/et.js
 +
#*函式:openWithSelfMain
 +
# <span style='color:brown'>儘量將可用的 javascript 函式搬到 uploadFiles.js</span>
 +
 +
====(二)全上傳系統共用====
 +
# common.php
 +
#*被每一個 index.php 與 admin.php 所載入
 +
#*諸變數
 +
#*#$omitLogin:全系統免登入
 +
#*#$rootPath:網頁文件根目錄
 +
#*#$rootFilePath:檔案系統根路徑
 +
#*#$maxSize:上傳檔案上限,<span style='color:brown'>請查 apache 與 PHP ,上傳上限設定</span><br/>以下為jendo.org設定(可在php.ini更動)
 +
#*#**上傳檔案大小上限(單一檔案大小)upload_max_filesize = 32M
 +
#*#**POST 大小上限(所有檔案大小加總)post_max_size = 32M
 +
#*#**記憶體用量上限 memory_limit = 128M
 +
#*#**最大的上傳允許時間 max_input_time 60
 +
#*#*Apach2中在這改 <br/> /etc/apache2/mods-available/fcgid.conf 或 <br/>/etc/apache2/conf-enabled 或 <br/> etc/httpd/conf/httpd.conf
 +
#*#**MaxRequestLen 15728640
 +
#*#$imgSet:圖檔附檔名陣列
 +
#*#$deny:禁止上傳的附檔名
 +
#*#$index_file:索引檔
 +
#*載入:
 +
#*#伺服器根路徑下的 GfUploadFiles.php
 +
#*#伺服器根路徑下的 constant.php
 +
#*#ET 類別的 DB.php
 +
#*動作:
 +
#*#依域名定帳密打開 MySQL 資料庫
 +
#*#讀取存儲的索引檔案
 +
# path_index.txt:路徑索引
 +
# theme.php
 +
#*由 index.php 與 admin.php 來載入
 +
#*通用功能
 +
#*#「登出」鈕:由 login 類別物件自動產生 input(type=submit)
 +
#*#「選檔」鈕:以 label,input(type='file') 觸發檔案上傳機制
 +
#*#「上傳」鈕:input(type=submit)
 +
#*#「補縮圖」鈕:button(id='thumbButton'),透過 javascript 觸動,觸動 jendo.org/dirThumb.php<br/>可參考下列網站
 +
#*#*http://gogopublic.net/ggp/img/thumb.php<br/>http://jendo.org/uploadFiles/thumb.php
 +
#*#「顯示縮圖」核取方塊:input(type='checkbox',id='thumb')
 +
#*#*每張圖都是一對標籤 &lt;img class='imageIcon'…/&gt;&lt;img class='imageThumb'…/&gt;
 +
#*#*透過 javascript 觸動 checkbox.checked 只顯示其中的一張
 +
#* admin 功能
 +
#*#「刪」連結:[&lt;a href='本身?act=del&amp;path=./圖檔名"&gt;刪&lt;/a&gt;]
 +
#*#「建資料夾」連結: &lt;a href='本身?act=addDirForm'&gt;&lt;span…&gt;建資料夾&lt;/span&gt;&lt;/a&gt;
 +
#*#輸入「目錄名」form:
 +
<pre style='margin-left:84pt;'>if($_REQUEST['act']=='addDirForm'){
 +
$html1.="<form action='".$_SERVER['PHP_SELF']."' method='post' enctype='multipart/form-data'>
 +
目錄名:<input type=text name=dirName value=''/>
 +
<input type=submit name=act value='建立'/>
 +
</form>";
 +
}</pre>
 +
 +
====(三)各路徑自用====
 +
#index.php
 +
#admin.php
 +
 +
====(四)跨伺服器共用====
 +
 +
===三、預覽與下載資料夾中諸檔的相關機制===
 +
#切換「須」或「不須」帳號可視
 +
#* fileUsers 資料表負責認證
 +
#* 以 $omitLogin 變數值控制「須」或「不須」帳號認證(放 index.php &lt;?php 之下首行)<br/><pre>if(isset($_REQUEST['workControl']['omitLogin']) && $_REQUEST['workControl']['omitLogin']==0){$omitLogin=0;}else{$omitLogin=1;}</pre>
 +
#*#只對 index.php 有用,對 admin.php 無效
 +
#*#預設為未設定此變數
 +
#*#值為 1 時,該路徑內檔案免登入可視<br/>http://jendo.org/uploadFiles/gogopublic/DEC/7/<br/>http://jendo.org/uploadFiles/gogopublic/DEC/11/
 +
# 以 index.php 達成檔案列表
 +
# 以 filePath 資料表控制「路徑」與「擁有者」
 +
# 以 $publicOwnership 控制「允許可刪無主檔案的目錄」(放 admin.php 首行)
 +
 +
===四、批次布署目錄樹下的諸檔===
 +
# changephp.php:布署新版的 index.php 與 admin.php
 +
#*index.php 第 2 行保留 $omitLogin 指示,待實作
 +
#*admin.php 第 2 行保留 $publicOwnership 指示,待實作
 +
# copy_admin.php:布署新版 admin.php 到諸路徑,用 scandir 構成遞迴遍歷處理
 +
 +
===五、上傳 youtube 影片===
 +
# 屬強化功能, admin.php 才有, index.php 沒有
 +
# 目前只有 /uploadFiles/gogopublic/WPND/JWCC/ 和 /uploadFiles/ 兩資料夾之下的 admin.php 才有此功能
 +
# 按「上 YT 片」按鈕,並輸入 youtube 影片 ID 後,會去抓此片 1280×720 的縮圖,來放在目前的路徑,並命名為「YT_影片ID.jpg」
 +
#* admin.php ,請去看前置處理的第二段:「$_POST['act']=='上片'」
 +
#*# 取影片縮圖
 +
#*# 放目前的路徑
 +
#*# 命名為「YT_影片ID.jpg」
 +
#*# 插入 webContent.filePath 表, videoid 欄賦值
 +
#*# 做縮圖,<span style='color:brown'>確定已成功</span>
 +
#*# 加入索引檔
 +
#* /GfUploadFiles.php 中
 +
#*# showDir 函式
 +
#*# 處理 YT 影片捷徑
 +
#*#*已新增 img 標籤中的 title 屬性,滑過就可以顯示該影片標題
 +
#*# 一般 jpg 處理須剔除 YT影片捷徑
 +
#* theme.php
 +
#*# 「linkLikeButton('上 YT 片')」偽按鈕,送出「act=uploadYTVedioForm」,觸發:
 +
#*# 以「Youtube影片ID」上片表單,然後再觸發 admin.php 中的前置處理「$_POST['act']=='上片'」
 +
 +
==擴充功能==
 +
===一、補縮圖===
 +
# dirThumb
 +
# treeThumb
 +
 +
===二、蒐尋功能===
 +
====(一)程式列表與簡介====
 +
#save.php
 +
#*本程式碼是用來建立 FTP 伺服器上指定路徑下的檔案路徑索引,並將索引儲存到一個檔案中。<br/><span style="color:red">為後臺手動建立初始索引的程式,一般來說並不會使用,普通的新增與刪除會加在admin.php、index.php中</span><br/>以下是程式碼的簡單介紹:
 +
##定義伺服器資訊:
 +
##*$ftp_server: FTP 伺服器的地址。
 +
##*$ftp_user: 用來登入 FTP 的使用者名稱。
 +
##*$ftp_password: 用來登入 FTP 的密碼。
 +
##*$remote_path: 遠端伺服器上欲建立索引的路徑。
 +
##連線 FTP 伺服器:
 +
##*$conn_id使用 ftp_connect 函數建立與 FTP 伺服器的連線。
 +
##*使用 ftp_login 函數登入 FTP 帳號。
 +
##*建立檔案路徑索引:
 +
##定義一個空陣列 $index 用來儲存檔案路徑索引。
 +
##*使用 buildFilePathIndex 函數遞迴地建立檔案路徑索引。
 +
##*將建立的索引陣列序列化後,使用 file_put_contents 存入指定的檔案(在這裡是 path_index.txt)。
 +
##buildFilePathIndex 函數:
 +
##*接受 FTP 連線資源 $conn_id、當前路徑 $current_path,以及檔案路徑索引陣列 $index。
 +
##*使用 ftp_nlist 函數取得指定路徑下的檔案列表。
 +
##*遞迴處理檔案列表,並將檔案路徑加入索引陣列。
 +
##*如果檔案是目錄,則遞迴呼叫自身處理該目錄。
 +
#[http://jendo.org/searchIndex.php searchIndex.php]
 +
#*本程式碼是一個使用RWD CSS設計的基本 HTML 網頁,用來實現資源池搜尋的功能。<br/>本程式碼實現了一個簡單的搜尋介面,使用者可以輸入搜尋文字,系統將根據事先建立的檔案路徑索引找到相符合的檔案路徑,然後顯示在網頁上。<br/>以下是對程式碼的簡單介紹:
 +
##使用了一個 <form> 表單,使用 POST 方法提交數據。
 +
##*包括一個輸入框(<input type="text" id="search_text" name="search_text">)和一個提交按鈕(<input type="submit" value="搜尋">)。
 +
##PHP 功能:
 +
##使用了 PHP 代碼區塊處理表單提交的數據。
 +
##*如果接收到 POST 數據,程式會讀取搜尋文字,然後使用事先建立的檔案路徑索引進行搜尋,並輸出符合搜尋條件的結果。
 +
##*結果以超連結的形式顯示,指向找到的檔案路徑。
 +
#path_index.txt
 +
#*本檔案為儲存uploadFiles各索引的檔案,儲存方式為PHP序列化
 +
 
==資料表==
 
==資料表==
 
===嘉禾書院(學生使用)===
 
===嘉禾書院(學生使用)===
第 19 行: 第 246 行:
 
====index.php與admin.php====
 
====index.php與admin.php====
 
#include 'common.php';
 
#include 'common.php';
 +
#*common.php主要是定義參考路徑、檔案大小以及不同的function<br>目前有兩種common.php,分別可以連結不同路徑。
 +
#*#'/volume1/web/uploadFiles/common.php'
 +
#*#'/volume1/web/qlFiles/common.php'。
 
#include 'constant.php';
 
#include 'constant.php';
 +
#*constant.php:引進更上一層的參考路徑、資料表與連結頁面
 
#錯誤訊息不同
 
#錯誤訊息不同
 +
#*用不同錯誤訊息警示管理不同層級的人
 
#include 'login.php';
 
#include 'login.php';
#new login;
+
#*login.php:依據不同資料表判斷權限是否可以登入
 +
#new login;  
 +
#*製作一個新的登入嘗試
 
#include 'theme.php';
 
#include 'theme.php';
 +
#*藉由參考路徑設定主題,決定不同的banner與圖片
 
#echo $html1;
 
#echo $html1;
 
#指定認證表並 logon();
 
#指定認證表並 logon();
 +
#*也可以預設未登入可瀏覽($omitLogin!=1)
 
#if(驗證不過){echo 錯誤訊息;}<br/>else{<br/>①admin.php有前置處理<br/>②跑上傳函式uploadFile();<br/>③echo showDir($admin,$root);根目錄和admin.php各有不同<br/>}
 
#if(驗證不過){echo 錯誤訊息;}<br/>else{<br/>①admin.php有前置處理<br/>②跑上傳函式uploadFile();<br/>③echo showDir($admin,$root);根目錄和admin.php各有不同<br/>}
 +
#*比如說showDir(__DIR__,0,1) 後面的數字第一個是判斷是否為admin,第二個是判斷是否是根目錄
 
#echo $html2;
 
#echo $html2;
 +
#admin.php主要多了建立資料夾與刪除檔案的function<br>其中包括部屬縮圖資料夾(thumb,thumb200)與基礎程式(index.php,admin.php)、刪除時一並刪除
 +
#removePathFromIndex
 +
#*在admin.php中,在刪除檔案時一並刪除path_index.txt中的路徑(並判斷是否有縮圖 會一並刪除)
 +
#addPathsToIndex
 +
#*在common.php中,在新增檔案時一並新增路徑至path_index.txt
  
 
====users.php====
 
====users.php====
第 40 行: 第 282 行:
 
#if(驗證不過){echo 錯誤訊息;}
 
#if(驗證不過){echo 錯誤訊息;}
 
#echo $html2;
 
#echo $html2;
 +
===工具程式===
 +
====changephp.php====
 +
主要工作為新增檔案或刪除特定資料夾中的檔案
 +
====copyIndex_thumb.php====
 +
主要工作為新資料夾中的縮圖資料夾(thumb,thumb200)與基礎程式(index.php,admin.php)並縮圖。
  
 
===圖===
 
===圖===

2024年3月13日 (三) 12:23的最新修訂版本

布署備註

○、待施工

  1. copyIndex_thumb.php 和 thumb.php:兩個檔內容差不多,不知道幹什麼?把 jendo.pensieveImg 儲思盆圖照,撐出九千多筆
    • 芸伍2024.03.08標註 已解決 建議留thumb.php即可
  2. drawword.png ?
    • 芸伍2024.03.08標註 未知 建議刪除
  3. 影片縮圖
    • 目前在影片資料夾中(\\DS218\web\newspaperCutting\videos),因為firefox無法載入mp4影片,所以又回去尋求FFmpeg的程式碼這條路,但是在linux系統下執行仍然有問題,目前尚無法整合進php檔案中,現在的方法是創建一個screenshot.sh ,在windows系統中進入伺服器,用FFmpeg的方法批次處理影片檔截圖,再存進縮圖資料夾。
    • 已經確定不是換行問題,windows可執行screenshot.sh,linux可執行screenshot_linux.sh,但是問題還是在ffmpeg的程式碼
    • 現在將輸出格式改為 apng 即可輸出,但仍須在作業系統下,取得 root 權限並以命令列才可以執行
      1. 將 /usr/local/bin/ffmpeg 改成 http / http 沒用
      2. 將 /usr/local/bin/ffmpeg 改成 777 也沒用
    • 在 php 檔中仍然無法執行
    • 20230921 更新,若是 mkv 檔案(vp9編碼),即可在 adminNas 下輸出,mp4檔案仍不行
  4. 批次上傳檔案,然後指定資料夾生成縮圖
  5. 引導語
    • 若有空可以多新增一些引導語

一、檔名使用字元

  1. 不禁用「()」:產生縮圖不會發生問題

二、uploadFiles 下,無主的檔案可以顯示「刪」連結,並可以刪掉的清單列表

\uploadFiles\gogopublic\WPND\JWCC\admin.php
\uploadFiles\丁志仁\family\admin.php
\uploadFiles\丁志仁\OCR\admin.php
\uploadFiles\丁志仁\剪報\admin.php
\uploadFiles\丁志仁\簽到領據\admin.php
\uploadFiles\嘉禾書院\徐恕禾\web\upload\admin.php
\uploadFiles\嘉禾書院\龔晉\web\admin.php
\uploadFiles\嘉禾書院\龔晉\web\upload\admin.php
\uploadFiles\嘉禾書院\龔晉\web\upload\images\admin.php
\uploadFiles\嘉禾書院\龔晉\web\upload\images\大鹿林道東線\admin.php
\uploadFiles\海星培力\自主學習典範的論述發展與實踐規畫\丁志仁\admin.php
\uploadFiles\跨校選修\192\admin.php
\uploadFiles\閉恩濡\admin.php
\uploadFiles\閉恩濡\GoGoPublic\admin.php

基本功能

一、權限規畫

index 使用功能admin(登入)使用功能


可視:
1.檔案列表
2.縮圖列表
可操作:
1.補縮圖
2.蒐尋檔案

可視:
1.檔案列表
2.縮圖列表
3.「選檔」「上傳」兩鈕
4.「上 YT 片」鈕
5.「刪」連結
6.「建資料夾」按鈕
可操作:
1.補縮圖
2.蒐尋檔案
3.選檔上傳刪除檔案
4.上傳 youtube 影片捷徑
5.刪除自己上傳的檔案
6.建資料夾
 -----延伸操作-----
7.刪無主檔案
 -----超級使用者-----
8.刪所有人的檔案


可視:
1.檔案列表
2.縮圖列表
3.「選檔」「上傳」兩鈕
可操作:
1.補縮圖
2.蒐尋檔案
3.選檔上傳

二、檔案

(一)全伺服器共用

  1. /GfUploadFiles.php
    • 諸變數:
      1. $linkLikeButton:1×22 的細長點陣圖,水平複製可以模擬按鈕
      2. $iconPath:諸 icon 所在路徑
      3. $entryTypeIcon:檔案種類與 icon 的對照陣列,檔名種類為索引,icon 為值
    • 諸函式:
      -----顯示處理區-----
      1. linkLikeButton($showWords):將連結模擬為按鈕
        -----前置處理區-----
      2. uploadFile:執行上傳動作
        -----檔案列表區-----
      3. entrys:產生子路徑與檔案條目
      4. get_youtube_title($ID):傳回影片的
      5. showDir:秀出檔案與目錄列表,已實作「youtube 影片捷徑項」
      6. imgThumb:製作縮圖到到縮圖資料夾中
      7. addPathsToIndex:新增路徑到索引檔中
  2. searchIndex.php,嵌入 theme.php 中用 '/searchIndex.php?filePath=".$rootFilePath."path_index.txt' 去找到相應的目錄樹索引檔
  3. dirThumb.php:重做一個資料夾的縮圖。嵌入 theme.php 最末的 javascript 呼叫。
  4. /et/class/include/et.js
    • 函式:openWithSelfMain
  5. 儘量將可用的 javascript 函式搬到 uploadFiles.js

(二)全上傳系統共用

  1. common.php
    • 被每一個 index.php 與 admin.php 所載入
    • 諸變數
      1. $omitLogin:全系統免登入
      2. $rootPath:網頁文件根目錄
      3. $rootFilePath:檔案系統根路徑
      4. $maxSize:上傳檔案上限,請查 apache 與 PHP ,上傳上限設定
        以下為jendo.org設定(可在php.ini更動)
          • 上傳檔案大小上限(單一檔案大小)upload_max_filesize = 32M
          • POST 大小上限(所有檔案大小加總)post_max_size = 32M
          • 記憶體用量上限 memory_limit = 128M
          • 最大的上傳允許時間 max_input_time 60
        • Apach2中在這改
          /etc/apache2/mods-available/fcgid.conf 或
          /etc/apache2/conf-enabled 或
          etc/httpd/conf/httpd.conf
          • MaxRequestLen 15728640
      5. $imgSet:圖檔附檔名陣列
      6. $deny:禁止上傳的附檔名
      7. $index_file:索引檔
    • 載入:
      1. 伺服器根路徑下的 GfUploadFiles.php
      2. 伺服器根路徑下的 constant.php
      3. ET 類別的 DB.php
    • 動作:
      1. 依域名定帳密打開 MySQL 資料庫
      2. 讀取存儲的索引檔案
  2. path_index.txt:路徑索引
  3. theme.php
    • 由 index.php 與 admin.php 來載入
    • 通用功能
      1. 「登出」鈕:由 login 類別物件自動產生 input(type=submit)
      2. 「選檔」鈕:以 label,input(type='file') 觸發檔案上傳機制
      3. 「上傳」鈕:input(type=submit)
      4. 「補縮圖」鈕:button(id='thumbButton'),透過 javascript 觸動,觸動 jendo.org/dirThumb.php
        可參考下列網站
      5. 「顯示縮圖」核取方塊:input(type='checkbox',id='thumb')
        • 每張圖都是一對標籤 <img class='imageIcon'…/><img class='imageThumb'…/>
        • 透過 javascript 觸動 checkbox.checked 只顯示其中的一張
    • admin 功能
      1. 「刪」連結:[<a href='本身?act=del&path=./圖檔名">刪</a>]
      2. 「建資料夾」連結: <a href='本身?act=addDirForm'><span…>建資料夾</span></a>
      3. 輸入「目錄名」form:
if($_REQUEST['act']=='addDirForm'){
	$html1.="<form action='".$_SERVER['PHP_SELF']."' method='post' enctype='multipart/form-data'> 
		目錄名:<input type=text name=dirName value=''/>
		<input type=submit name=act value='建立'/>
	</form>";
}

(三)各路徑自用

  1. index.php
  2. admin.php

(四)跨伺服器共用

三、預覽與下載資料夾中諸檔的相關機制

  1. 切換「須」或「不須」帳號可視
    • fileUsers 資料表負責認證
    • 以 $omitLogin 變數值控制「須」或「不須」帳號認證(放 index.php <?php 之下首行)
      if(isset($_REQUEST['workControl']['omitLogin']) && $_REQUEST['workControl']['omitLogin']==0){$omitLogin=0;}else{$omitLogin=1;}
      1. 只對 index.php 有用,對 admin.php 無效
      2. 預設為未設定此變數
      3. 值為 1 時,該路徑內檔案免登入可視
        http://jendo.org/uploadFiles/gogopublic/DEC/7/
        http://jendo.org/uploadFiles/gogopublic/DEC/11/
  2. 以 index.php 達成檔案列表
  3. 以 filePath 資料表控制「路徑」與「擁有者」
  4. 以 $publicOwnership 控制「允許可刪無主檔案的目錄」(放 admin.php 首行)

四、批次布署目錄樹下的諸檔

  1. changephp.php:布署新版的 index.php 與 admin.php
    • index.php 第 2 行保留 $omitLogin 指示,待實作
    • admin.php 第 2 行保留 $publicOwnership 指示,待實作
  2. copy_admin.php:布署新版 admin.php 到諸路徑,用 scandir 構成遞迴遍歷處理

五、上傳 youtube 影片

  1. 屬強化功能, admin.php 才有, index.php 沒有
  2. 目前只有 /uploadFiles/gogopublic/WPND/JWCC/ 和 /uploadFiles/ 兩資料夾之下的 admin.php 才有此功能
  3. 按「上 YT 片」按鈕,並輸入 youtube 影片 ID 後,會去抓此片 1280×720 的縮圖,來放在目前的路徑,並命名為「YT_影片ID.jpg」
    • admin.php ,請去看前置處理的第二段:「$_POST['act']=='上片'」
      1. 取影片縮圖
      2. 放目前的路徑
      3. 命名為「YT_影片ID.jpg」
      4. 插入 webContent.filePath 表, videoid 欄賦值
      5. 做縮圖,確定已成功
      6. 加入索引檔
    • /GfUploadFiles.php 中
      1. showDir 函式
      2. 處理 YT 影片捷徑
        • 已新增 img 標籤中的 title 屬性,滑過就可以顯示該影片標題
      3. 一般 jpg 處理須剔除 YT影片捷徑
    • theme.php
      1. 「linkLikeButton('上 YT 片')」偽按鈕,送出「act=uploadYTVedioForm」,觸發:
      2. 以「Youtube影片ID」上片表單,然後再觸發 admin.php 中的前置處理「$_POST['act']=='上片'」

擴充功能

一、補縮圖

  1. dirThumb
  2. treeThumb

二、蒐尋功能

(一)程式列表與簡介

  1. save.php
    • 本程式碼是用來建立 FTP 伺服器上指定路徑下的檔案路徑索引,並將索引儲存到一個檔案中。
      為後臺手動建立初始索引的程式,一般來說並不會使用,普通的新增與刪除會加在admin.php、index.php中
      以下是程式碼的簡單介紹:
    1. 定義伺服器資訊:
      • $ftp_server: FTP 伺服器的地址。
      • $ftp_user: 用來登入 FTP 的使用者名稱。
      • $ftp_password: 用來登入 FTP 的密碼。
      • $remote_path: 遠端伺服器上欲建立索引的路徑。
    2. 連線 FTP 伺服器:
      • $conn_id使用 ftp_connect 函數建立與 FTP 伺服器的連線。
      • 使用 ftp_login 函數登入 FTP 帳號。
      • 建立檔案路徑索引:
    3. 定義一個空陣列 $index 用來儲存檔案路徑索引。
      • 使用 buildFilePathIndex 函數遞迴地建立檔案路徑索引。
      • 將建立的索引陣列序列化後,使用 file_put_contents 存入指定的檔案(在這裡是 path_index.txt)。
    4. buildFilePathIndex 函數:
      • 接受 FTP 連線資源 $conn_id、當前路徑 $current_path,以及檔案路徑索引陣列 $index。
      • 使用 ftp_nlist 函數取得指定路徑下的檔案列表。
      • 遞迴處理檔案列表,並將檔案路徑加入索引陣列。
      • 如果檔案是目錄,則遞迴呼叫自身處理該目錄。
  2. searchIndex.php
    • 本程式碼是一個使用RWD CSS設計的基本 HTML 網頁,用來實現資源池搜尋的功能。
      本程式碼實現了一個簡單的搜尋介面,使用者可以輸入搜尋文字,系統將根據事先建立的檔案路徑索引找到相符合的檔案路徑,然後顯示在網頁上。
      以下是對程式碼的簡單介紹:
    1. 使用了一個 <form> 表單,使用 POST 方法提交數據。
      • 包括一個輸入框(<input type="text" id="search_text" name="search_text">)和一個提交按鈕(<input type="submit" value="搜尋">)。
    2. PHP 功能:
    3. 使用了 PHP 代碼區塊處理表單提交的數據。
      • 如果接收到 POST 數據,程式會讀取搜尋文字,然後使用事先建立的檔案路徑索引進行搜尋,並輸出符合搜尋條件的結果。
      • 結果以超連結的形式顯示,指向找到的檔案路徑。
  3. path_index.txt
    • 本檔案為儲存uploadFiles各索引的檔案,儲存方式為PHP序列化

資料表

嘉禾書院(學生使用)

/constant.php

  • 用 substr(urldecode($_SERVER['REQUEST_URI']),0,25)=='/uploadFiles/嘉禾書院' 判斷是否為嘉禾書院,若是
    1. 使用嘉禾書院專屬資料庫帳號,管嘉禾書院專屬資料夾 jahoschool
    2. 該帳號對 webContent.fileUsers 的表和欄都有 select 權限
    3. 該帳號對 webContent.filePath 的表有 select,Insert,Update,Delete 權限,對欄有 select,Insert,Update 權限

其他帳號(後台管理者使用)

對 webContent.* 有廣泛的權限

程式

另一版 admin.php 程式

http://jendo.org/uploadFiles/丁志仁/剪報/ 之下

對用 FTP 上傳檔也能產生「刪」連結

三程式

index.php與admin.php

  1. include 'common.php';
    • common.php主要是定義參考路徑、檔案大小以及不同的function
      目前有兩種common.php,分別可以連結不同路徑。
      1. '/volume1/web/uploadFiles/common.php'
      2. '/volume1/web/qlFiles/common.php'。
  2. include 'constant.php';
    • constant.php:引進更上一層的參考路徑、資料表與連結頁面
  3. 錯誤訊息不同
    • 用不同錯誤訊息警示管理不同層級的人
  4. include 'login.php';
    • login.php:依據不同資料表判斷權限是否可以登入
  5. new login;
    • 製作一個新的登入嘗試
  6. include 'theme.php';
    • 藉由參考路徑設定主題,決定不同的banner與圖片
  7. echo $html1;
  8. 指定認證表並 logon();
    • 也可以預設未登入可瀏覽($omitLogin!=1)
  9. if(驗證不過){echo 錯誤訊息;}
    else{
    ①admin.php有前置處理
    ②跑上傳函式uploadFile();
    ③echo showDir($admin,$root);根目錄和admin.php各有不同
    }
    • 比如說showDir(__DIR__,0,1) 後面的數字第一個是判斷是否為admin,第二個是判斷是否是根目錄
  10. echo $html2;
  11. admin.php主要多了建立資料夾與刪除檔案的function
    其中包括部屬縮圖資料夾(thumb,thumb200)與基礎程式(index.php,admin.php)、刪除時一並刪除
  12. removePathFromIndex
    • 在admin.php中,在刪除檔案時一並刪除path_index.txt中的路徑(並判斷是否有縮圖 會一並刪除)
  13. addPathsToIndex
    • 在common.php中,在新增檔案時一並新增路徑至path_index.txt

users.php

  1. include 'constant.php';
  2. 設定錯誤訊息
  3. include 'etable.php';
  4. new etable;
  5. include 'theme.php';
  6. echo $html1;
  7. 設定 sql[0],editable,formValidate 等屬性
  8. 指定認證表並 main();
  9. if(驗證不過){echo 錯誤訊息;}
  10. echo $html2;

工具程式

changephp.php

主要工作為新增檔案或刪除特定資料夾中的檔案

copyIndex_thumb.php

主要工作為新資料夾中的縮圖資料夾(thumb,thumb200)與基礎程式(index.php,admin.php)並縮圖。

  1. 畫字程式
  2. logo.png
  3. 導航列.png
  4. button.png
  5. folder.gif
  6. text.gif
  7. back.gif

共用

  1. theme.php
  2. common.php