2011-04-05 96 views
1

首先讓我只是說,我不想讓任何人發佈解決方案,因爲我得到更多的滿意編碼自己,所以我會很感激指導和想法。PHP上傳和下載腳本

所以我想建立一個網站,讓我上傳一個文件,存儲它,顯示所有上傳文件的列表,然後下載一個選定的文件。

對我如何做到這一點有什麼幫助?

更詳細地說,

步驟1:

用戶選擇一個按鈕上傳文件。

第1步:它顯示窗口,他們可以瀏覽其本地存儲的文件並選擇其中的一個。

第3步:

他們點擊上傳。

第4步:這被存儲(也許在MySQL數據庫中,不知道如何做到這一點)。

步驟5:用戶點擊按鈕「瀏覽上載的文件」

步驟6:向用戶示出所有的上載的文件

步驟7的列表:用戶選擇文件中的一個和點擊下載。

我希望這使得它更清晰

而且我只是想有人告訴我從哪裏開始真的。

三江源

+2

這是相當廣泛的。您需要輸入哪部分流程?如何存儲文件,如何構建UI ....?你可能會更好地把它分解成更孤立的任務 – 2011-04-05 15:19:29

+0

Thankyou。我現在會這樣做 – RSM 2011-04-05 15:19:50

+0

爲什麼你不開始,然後告訴我們你有什麼問題。你知道如何在HTML中創建表單嗎?如何將文件字段添加到表單?你知道如何訪問文件數據一旦發送到服務器?你的第一個絆腳石究竟在哪裏? – Erik 2011-04-05 15:20:35

回答

2

好,所以你需要一些指導而不是代碼,這很好,因爲沒有人會創造這種類型的網站的來源,沒有某種收入。


請不要以此爲犯罪,但你顯然缺乏技能開發能夠處理這類用戶的迭代系統,下面會顯得格格不入,但自己對別人可以讀它可以幫助他們更多,然後它會幫助你。


開始

我勸你是打破網站變成組件,然後看看有更詳細一點的每個組件。

我會向下突破該站點的對象分爲以下幾個部分:

  • 數據庫
    • 佈局
    • 類型
  • 上傳
    • 安全
    • 申通憤怒
    • 配額
    • 方法(API?)
  • 下載
    • 限制
    • 權限
    • 限制
  • 用戶
    • 註冊基於
    • 用戶權限/角色
    • 訂閱

還有更多大量添加,但這個想法是看看詳細的每個組件,如果你必須讓筆和紙,然後這樣做,它只會讓事情變得更容易。

好的,讓我們從數據庫開始,數據庫可能會非常簡單,MySQL通常是一個很好的選擇,但也有其他選擇。

對於結構,您需要首先查看網站的所有其他aspecs,以便能夠理解數據庫所需的內容。

對於上傳/下載我不會依賴的Apache爲此,Apache生成每個請求一個新的線程,並與速度的限制對他們發送大文件時,螺紋保持活躍的不再那麼有可能你可以有數以千計的下載/上傳線程並導致您的服務器速度非常慢。

我想看看libev作爲一個概念,其作爲被納入Node不使用螺紋,並利用磁盤I/O

libev + 節點是一個事件循環結構,其然後將回調分配給讀取的磁盤,然後在磁盤啓動並準備向您發送大量數據時調用回調,但在分配回調和時間的過程中該回調實際上稱爲該進程已處理了您可能已設置的數百個其他回調/

用戶需要放置在結構圖表中,創建用戶在您的結構中的組織方式將幫助您瞭解收入途徑。

首先,您應該從一個框架開始,該框架可以幫助您構建快速且可擴展的應用程序(例如Codeigniter),這些應用程序可以幫助您爲網站構建一個框架,以便現在可以運行您也可以使用Node.JS爲此,但出於安全原因,我建議您僅使用Node將文件數據傳遞到客戶端。

我認爲你有這個想法:)

0

你應該使用move_uploaded_file函數來存儲上傳的文件,檢查文件類型是確定和大小,... 然後將文件名保存到數據庫中,你可以添加一些標籤,描述您可以使用它來顯示或搜索!

0

這個問題很普遍 - 你有什麼特別的問題實現?您是否閱讀過關於文件上傳的PHP手冊部分?

有許多事情你沒有考慮到 - 不僅僅是分發惡意軟件/許可內容的責任。