推 bency:掛成網路硬碟? 10/06 15:15
都不會放在同一台伺服器上
後台會放在 A 地,使用的 OS 是 Win Server 2003
上傳之後的檔案都會放在 A 地的伺服器裡
而前台放在 B 地,使用的 OS 是 Win Server 2008 R2
檔案在 php 裡讀取時因為使用 OS 的絕對路徑
我要怎麼讓 php 從 B 地連到 A 地的 OS 檔案系統裡把檔案讀出來給使用者呢?
曾經考慮 A 地用資料夾共享的方式在讓 B 地用網芳連過去
但考慮到檔案不能公開到被網芳的人拿取
所以連進 A 地伺服器時得必須要輸入帳密驗證才能進入
但 php 要怎麼做讓他自動輸入驗證進入 A 地伺服器取資料呢?
目前卡在這個地方很頭大,不知各位大大有沒有更好的方法
先感謝各位大大 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.218.18.112
※ 編輯: Bambe 來自: 124.218.18.112 (10/06 13:58)
目前我做了一個檔案交換的系統
因這個系統裡所上傳的檔案必須要做的隱密一些
也就是說要下載檔案得向上傳者取得相關資料才能做
而且使用網址是沒有辦法直接進入存放那些檔案的資料夾
意即直接 access 的話瀏覽器會告訴你「401 - 未經授權: 因為認證無效而拒絕存取。」
先說說我的前後台好了
後台使用者必須登入,登入後可以上傳 n 個檔案
輸入的資訊有檔案的編號,還有下載驗證碼(系統亂數產生)
上傳者得將其記下來才能告訴前台要下載的使用者必須輸入這些資訊
而前台有只有兩個欄位和一顆 submit,欄位分別要輸入檔案的編號與驗證碼
兩者必須輸入正確才能得到他想要的東西
在來就是我的下載機制
因為不能讓人家知道檔案用網址就可以繞過驗證就下載(如第一段所述,如此會出現401)
所以我寫了一個 php 讓程式去撈我硬碟裡那些上傳者的檔案
檔案路徑用的是 Windows 裡的絕對路徑,例如 C:\Inetpub\wwwroot\ ...
在用 header() + readfile() 的方式讓使用者下載檔案
機制有點像是 Discuz 下載附件那樣的形式
而我現在的問題是,後台與前台將來開發完後