資料存放位置:本頁為純前端靜態頁面。若 ENDPOINT 留空,所有資料只留在參賽者自己瀏覽器的記憶體內;按「遞交報名」時只會下載一份 .json 到參賽者電腦,大會不會收到任何東西,相片亦不會離開參賽者裝置。重整頁面或關閉分頁即全部消失。
本專案現行做法:資料傳送至大會自架伺服器(VPS),不經 Google Drive、不經任何第三方平台。
資料會以 multipart/form-data POST 到 https://panda.emchina.com.hk/photo2026/api/submit(本頁用相對路徑 api/submit,所以放喺邊個網域都得)。
相片存放於伺服器 /opt/hkfbif2026/data/uploads/<日期>/<組別>/<英文全名>_<手提電話>/,
文字資料同時寫入 entries.csv(報名名單,28 欄)及 photos.csv(作品清單,16 欄),另存 raw.jsonl 原始備份。
職員可到 https://panda.emchina.com.hk/photo2026/admin?token=〈管理 token〉 查閱名單、下載 CSV 或打包全部相片的 ZIP。
其他可選接駁方法(把 ENDPOINT 改成收件網址即可):
1. Google Apps Script — 相片存 Google Drive、名單入試算表;批量報名會逐名上傳並顯示進度(Apps Script 單次上限 50MB)。
2. Formspree/Getform 等表單服務 — 把 ENDPOINT 改為服務提供的 URL(檔案上載通常需付費方案,且注意容量限制)。
3. 自建伺服器 — 提供 POST multipart/form-data 接口,欄位名稱見下表;成功回傳 {"ok":true} 即可。
批量報名(學校/機構):另設「學校批量報名」分頁,接受 .xlsx/.xls/.csv 報名表 + 多選相片,
逐名列出行級核對結果(紅底為待修正)。xlsx 讀取依賴 SheetJS(CDN,懶載入);
若環境無外網,頁面會提示改用 CSV(CSV 為原生解析,必定可用)。
遞交時欄位為 mode=batch、teacherName/School/Email/Phone、
entryCount,以及每筆 entry_N_*(group / nameZh / nameEn / birth / idNo /
email / phone / school / parentZh / parentEn / relation / consent / photoCount / photo_K…)。
相片檔名會自動改為「英文全名_手提電話_編號.jpg」。
Excel 範本:攝影比賽2026_學校批量報名表_範本.xlsx 須與本頁放在同一資料夾,
或自行修改頁面上該連結的 href。CSV 版範本由頁面即時產生,不依賴任何檔案。
提交欄位(FormData):
group, nameZh, nameEn, idNo, school, email, phoneDay, phoneNight, contactPref, birth, childZh, childEn, relation, childAge, delivery, agree, sign, signDate, photoCount, photo_1, photo_1_name, photo_1_title, photo_1_place, photo_1_desc, photo_2…
其中 photo_N 為檔案本身,檔名已按章程規則命名為「英文全名_手提電話_編號」。
驗證規則(前端已實作,後台請重複驗證):1–2 張、image/jpeg、2–10MB、長邊 ≥3,000 像素、青少年組出生日期 ≥ 2008-11-21。