上傳檔案櫃:修訂版本之間的差異
出自六年制學程
(→一、權限規畫) |
(→一、權限規畫) |
||
第 38 行: | 第 38 行: | ||
===一、權限規畫=== | ===一、權限規畫=== | ||
<table class=nicetable> | <table class=nicetable> | ||
− | <tr><th></th><th>使用功能</th></tr> | + | <tr><th></th><th>index使用功能</th><th>admin(登入)使用功能</th></tr> |
− | <tr><th | + | <tr><th>免<br/>登<br/>入</th><td> |
'''可視:'''<br/> | '''可視:'''<br/> | ||
1.檔案列表<br/> | 1.檔案列表<br/> | ||
第 46 行: | 第 46 行: | ||
1.補縮圖<br/> | 1.補縮圖<br/> | ||
2.蒐尋檔案 | 2.蒐尋檔案 | ||
− | </td | + | </td><td rowspan=2> |
− | + | ||
'''可視:'''<br/> | '''可視:'''<br/> | ||
1.檔案列表<br/> | 1.檔案列表<br/> | ||
2.縮圖列表<br/> | 2.縮圖列表<br/> | ||
3.「選檔」「上傳」兩鈕<br/> | 3.「選檔」「上傳」兩鈕<br/> | ||
+ | 4.「上 YT 片」鈕<br/> | ||
+ | 5.「刪」連結<br/> | ||
+ | 6.「建資料夾」按鈕<br/> | ||
'''可操作:'''<br/> | '''可操作:'''<br/> | ||
1.補縮圖<br/> | 1.補縮圖<br/> | ||
2.蒐尋檔案<br/> | 2.蒐尋檔案<br/> | ||
− | 3. | + | 3.選檔上傳刪除檔案<br/> |
+ | 4.上傳 youtube 影片捷徑<br/> | ||
+ | 5.刪除檔案<br/> | ||
+ | 6.建資料夾 | ||
</td></tr> | </td></tr> | ||
− | <tr><th | + | <tr><th>登<br/>入</th><td> |
'''可視:'''<br/> | '''可視:'''<br/> | ||
1.檔案列表<br/> | 1.檔案列表<br/> | ||
2.縮圖列表<br/> | 2.縮圖列表<br/> | ||
3.「選檔」「上傳」兩鈕<br/> | 3.「選檔」「上傳」兩鈕<br/> | ||
− | |||
− | |||
− | |||
'''可操作:'''<br/> | '''可操作:'''<br/> | ||
1.補縮圖<br/> | 1.補縮圖<br/> | ||
2.蒐尋檔案<br/> | 2.蒐尋檔案<br/> | ||
− | 3. | + | 3.選檔上傳 |
− | + | ||
− | + | ||
− | + | ||
</td></tr> | </td></tr> | ||
</table> | </table> |
2024年3月10日 (日) 08:30的修訂版本
布署備註
○、待施工
- copyIndex_thumb.php 和 thumb.php:兩個檔內容差不多,不知道幹什麼?把 jendo.pensieveImg 儲思盆圖照,撐出九千多筆
- 芸伍2024.03.08標註 已解決 建議留thumb.php即可
- drawword.png ?
- 芸伍2024.03.08標註 未知 建議刪除
- 影片縮
- 目前在影片資料夾中(\\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
基本功能
一、權限規畫
index使用功能 | admin(登入)使用功能 | |
---|---|---|
免 登 入 |
可視: |
可視: |
登 入 |
可視: |
一、預覽與下載資料夾中諸檔
- 切換「須」或「不須」帳號可視
- fileUsers 資料表負責認證
- 以 $omitLogin 變數值控制「須」或「不須」帳號認證(放 index.php 首行)
- 只對 index.php 有用,對 admin.php 無效
- 預設為未設定此變數
- 值為 1 時,該路徑內檔案免登入可視
http://jendo.org/uploadFiles/gogopublic/DEC/7/
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 ,請去看 31~43 行
- 取影片縮圖
- 放目前的路徑
- 命名為「YT_影片ID.jpg」
- 插入 webContent.filePath 表, videoid 欄賦值
- 做縮圖,確定已成功
- 加入索引檔
- common.php
- showDir 函式
- 116~121 行,不可以到資料表去找出來
- 122~126 行,秀出該列,並連結到 youtube 影片
- 芸伍2024.03.08標註 已新增 img標籤中的title 滑過就可以顯示標題
- 135 行,該縮圖不再以一般圖照來顯示
- theme.php
- 166~171
- 188~192
- admin.php ,請去看 31~43 行
四、共用檔
- common.php
- 被每一個 index.php 與 admin.php 所載入
- 諸變數
- $rootPath
- $rootFilePath
- $imgSet
- $deny
- 諸函式:
- entrys:產生子路徑與檔案條目,待實作「youtube 影片捷徑項」
- uploadFile:執行上傳動作
- showDir:秀出檔案與目錄列表
- addPathsToIndex:新增路徑到索引檔中
- imgThumb:製作縮圖到到縮圖資料夾中
- theme.php
- 由 index.php 與 admin.php 來載入
- 通用功能
- 「登出」鈕:由 login 類別物件自動產生 input(type=submit)
- 「選檔」鈕:以 label,input(type='file') 觸發檔案上傳機制
- 「上傳」鈕:input(type=submit)
- 「補縮圖」鈕:button(id='thumbButton'),透過 javascript 觸動
http://gogopublic.net/ggp/img/thumb.php
http://jendo.org/uploadFiles/thumb.php - 「顯示縮圖」核取方塊:input(type='checkbox',id='thumb')
- 每張圖都是一對標籤 <img class='imageIcon'…/><img class='imageThumb'…/>
- 透過 javascript 觸動 checkbox.checked 只顯示其中的一張
- admin 功能
- 「刪」連結:[<a href='本身?act=del&path=./圖檔名">刪</a>]
- 「建資料夾」連結: <a href='本身?act=addDirForm'><span…>建資料夾</span></a>
- 輸入「目錄名」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>"; }
擴充功能
一、補縮圖
二、蒐尋功能
(一)程式列表與簡介
- save.php
- 本程式碼是用來建立 FTP 伺服器上指定路徑下的檔案路徑索引,並將索引儲存到一個檔案中。
為後臺手動建立初始索引的程式,一般來說並不會使用,普通的新增與刪除會加在admin.php、index.php中
以下是程式碼的簡單介紹:
- 定義伺服器資訊:
- $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 函數取得指定路徑下的檔案列表。
- 遞迴處理檔案列表,並將檔案路徑加入索引陣列。
- 如果檔案是目錄,則遞迴呼叫自身處理該目錄。
- 本程式碼是用來建立 FTP 伺服器上指定路徑下的檔案路徑索引,並將索引儲存到一個檔案中。
- search_index.php
- 本程式碼是一個使用RWD CSS設計的基本 HTML 網頁,用來實現資源池搜尋的功能。
本程式碼實現了一個簡單的搜尋介面,使用者可以輸入搜尋文字,系統將根據事先建立的檔案路徑索引找到相符合的檔案路徑,然後顯示在網頁上。
以下是對程式碼的簡單介紹:
- 使用了一個 <form> 表單,使用 POST 方法提交數據。
- 包括一個輸入框(<input type="text" id="search_text" name="search_text">)和一個提交按鈕(<input type="submit" value="搜尋">)。
- PHP 功能:
- 使用了 PHP 代碼區塊處理表單提交的數據。
- 如果接收到 POST 數據,程式會讀取搜尋文字,然後使用事先建立的檔案路徑索引進行搜尋,並輸出符合搜尋條件的結果。
- 結果以超連結的形式顯示,指向找到的檔案路徑。
- 本程式碼是一個使用RWD CSS設計的基本 HTML 網頁,用來實現資源池搜尋的功能。
- path_index.txt
- 本檔案為儲存uploadFiles各索引的檔案,儲存方式為PHP序列化
資料表
嘉禾書院(學生使用)
/constant.php
- 用 substr(urldecode($_SERVER['REQUEST_URI']),0,25)=='/uploadFiles/嘉禾書院' 判斷是否為嘉禾書院,若是
- 使用嘉禾書院專屬資料庫帳號,管嘉禾書院專屬資料夾 jahoschool
- 該帳號對 webContent.fileUsers 的表和欄都有 select 權限
- 該帳號對 webContent.filePath 的表有 select,Insert,Update,Delete 權限,對欄有 select,Insert,Update 權限
其他帳號(後台管理者使用)
對 webContent.* 有廣泛的權限
程式
另一版 admin.php 程式
在 http://jendo.org/uploadFiles/丁志仁/剪報/ 之下
對用 FTP 上傳檔也能產生「刪」連結
三程式
index.php與admin.php
- include 'common.php';
- common.php主要是定義參考路徑、檔案大小以及不同的function
目前有兩種common.php,分別可以連結不同路徑。- '/volume1/web/uploadFiles/common.php'
- '/volume1/web/qlFiles/common.php'。
- common.php主要是定義參考路徑、檔案大小以及不同的function
- include 'constant.php';
- constant.php:引進更上一層的參考路徑、資料表與連結頁面
- 錯誤訊息不同
- 用不同錯誤訊息警示管理不同層級的人
- include 'login.php';
- login.php:依據不同資料表判斷權限是否可以登入
- new login;
- 製作一個新的登入嘗試
- include 'theme.php';
- 藉由參考路徑設定主題,決定不同的banner與圖片
- echo $html1;
- 指定認證表並 logon();
- 也可以預設未登入可瀏覽($omitLogin!=1)
- if(驗證不過){echo 錯誤訊息;}
else{
①admin.php有前置處理
②跑上傳函式uploadFile();
③echo showDir($admin,$root);根目錄和admin.php各有不同
}- 比如說showDir(__DIR__,0,1) 後面的數字第一個是判斷是否為admin,第二個是判斷是否是根目錄
- echo $html2;
- admin.php主要多了建立資料夾與刪除檔案的function
其中包括部屬縮圖資料夾(thumb,thumb200)與基礎程式(index.php,admin.php)、刪除時一並刪除 - removePathFromIndex
- 在admin.php中,在刪除檔案時一並刪除path_index.txt中的路徑(並判斷是否有縮圖 會一並刪除)
- addPathsToIndex
- 在common.php中,在新增檔案時一並新增路徑至path_index.txt
users.php
- include 'constant.php';
- 設定錯誤訊息
- include 'etable.php';
- new etable;
- include 'theme.php';
- echo $html1;
- 設定 sql[0],editable,formValidate 等屬性
- 指定認證表並 main();
- if(驗證不過){echo 錯誤訊息;}
- echo $html2;
工具程式
changephp.php
主要工作為新增檔案或刪除特定資料夾中的檔案
copyIndex_thumb.php
主要工作為新資料夾中的縮圖資料夾(thumb,thumb200)與基礎程式(index.php,admin.php)並縮圖。
圖
- 畫字程式
- logo.png
- 導航列.png
- button.png
- folder.gif
- text.gif
- back.gif
共用
- theme.php
- common.php