我正在創建一個表單,用戶可以發佈包含照片的廣告。在訪問此表單之前,用戶不需要登錄/註冊。我需要在用戶填寫表單時異步上傳照片。 (例如,gumtree.com.au可讓您在製作新廣告時上傳照片)用戶填寫表單時上傳文件
我知道,只要用戶選擇文件,我們就可以開始上傳文件。但是,在服務器端,如何在用戶提交表單後稍後識別這些文件?如果用戶放棄未填寫的表單,如何處理上傳的文件?
正確實現此目標的典型設計模式是什麼?
我正在創建一個表單,用戶可以發佈包含照片的廣告。在訪問此表單之前,用戶不需要登錄/註冊。我需要在用戶填寫表單時異步上傳照片。 (例如,gumtree.com.au可讓您在製作新廣告時上傳照片)用戶填寫表單時上傳文件
我知道,只要用戶選擇文件,我們就可以開始上傳文件。但是,在服務器端,如何在用戶提交表單後稍後識別這些文件?如果用戶放棄未填寫的表單,如何處理上傳的文件?
正確實現此目標的典型設計模式是什麼?
這是一種方法
第1部分
當用戶訪問您的網站它與服務器聯繫,併發送一個隨機生成的10個字母數字字符e.g(Xf4ht5Y4u9)。這是用戶識別碼
可以用一點JavaScript和Ajax在客戶端
上,你可以用PHP創建與用戶識別碼命名的臨時目錄服務器端easyly實現
第2部分
用戶上傳文件和異步發送它們到該臨時文件夾
霸rt 3
用戶填寫表格= true ---執行操作,例如處理表格和圖像,將它們從臨時文件夾中移出。臨時文件夾現在是空的。它可以用於下一批的上傳,如果你想要的功能。您可以等待上傳成功回調,以防止文件仍在上傳
用戶填寫表格= false ---上傳的文件保留在臨時文件夾中,因爲它們尚未處理。
第4
服務器端看家。如果超過當前日期的x天時間,則每天檢查一次臨時文件夾,並刪除它們以節省空間。可以在任何平臺上使用shell腳本完成
如果您擔心未處理的文件在服務器上停留的時間過長,請更改上述邏輯。例如每小時運行一次,並檢查臨時文件夾的年齡是否大於6小時或其他什麼
如果用戶現在和6小時內上傳文件,則在服務器端填寫表單,然後在服務器端報告客戶說這些文件已被刪除,需要重新上傳。但這一切都取決於空間是否是一個問題。
您可以在5小時後自動打開一個彈出窗口,以表示上傳的文件在未填寫表單時即將被刪除。
非常感謝,在接受您的答案之前,我正在等待其他解答的答案 –
@Khalid Amin - 沒問題。正如我在A中所提到的,這是少數幾個解決方案之一,並且有些部分需要擴展,但是簡而言之,這種方法應該可以正常工作 – Tasos