2010-06-19 261 views
1

我正在爲我的站點創建一個成員區域,並且它已經在運行。我使用mysql和php驗證成員,這非常有效。使用PHP身份驗證的HTTP身份驗證

但是現在出現了問題,我想爲成員提供將文件上傳到系統的可能性,這些文件只能用於登錄成員。

我知道我可以將這些文件存儲到數據庫甚至是文件系統中,並通過php提供它們,但是當成員上傳更大的文件時,服務器會變得非常沉重。這些文件甚至可能是20MB甚至更大。

我想讓apache提供這些文件,但只需要找到一種方法來自動執行http身份驗證,因此用戶不需要登錄兩次。我想這是可以做一個用戶名和密碼後面的這個http認證,就像當用戶登錄到php和mysql認證時,透明地在同一時間javascript等也會做http認證,每個成員都會做使用相同憑證的http認證。當然,我不想將這些http認證憑證存儲在一個JavaScript文件中,但像​​解決方案這樣的ajax可能會做到這一點。我只是不知道如何做到這一點。

回答

1

看起來好像使用HTTP身份驗證(您專門使用HTTP協議進行身份驗證,並且瀏覽器向用戶顯示一個彈出窗口)混淆了身份驗證(您提供某種登錄方式)。

您可能需要前者,以便您可以設計登錄頁面的樣式。在這種情況下,您必須使用PHP或一些腳本語言來檢查用戶是否已登錄。fpassthrureadfile對於某些網站可能是很好的解決方案;他們快速且針對此類工作進行了優化。

如果您確實想在Web瀏覽器中而不是在PHP中執行文件處理工作,則一種解決方案可能是創建唯一的,短暫的文件名。例如,您可以使用link在PHP中創建到該文件的硬鏈接,然後將用戶重定向到臨時文件名。將硬鏈接存儲在數據庫中,並在一段時間後將其刪除。