2010-09-14 21 views
0

我在我的web應用程序中構建了一個簡單的電子郵件功能,並且希望將其設置爲可以發送附件。問題是我想要設置異步上傳文件的能力,例如附件。我想爲此使用SWFUpload,但是'ajax'上傳器會將文件上傳到服務器上的某個位置 - 該位置通常是在代碼或配置文件中預先安排的位置。在這種情況下,我不希望最終出現併發用戶將文件上傳到這個臨時區域並相互覆蓋的情況。如何使用SWF Upload爲併發用戶管理ajax上傳?

我該如何設置它。我在這裏使用php MYSQL和原型JavaScript庫。

回答

1

在這種情況下,我不想最終遇到併發用戶上傳文件到這個臨時區域並且彼此覆蓋的情況。

避免這種情況的一個好方法是在上載過程開始前生成一個隨機密鑰,並使用該隨機密鑰爲每個上傳的文件加上前綴。

當是發送電子郵件的時候,您可以使用該隨機密鑰獲取所有文件。

您也可以創建一個以隨機密鑰命名的臨時目錄,並將所有文件存儲在那裏。

這樣可以避免用戶之間以及同一用戶的多個上傳過程之間發生衝突。

+0

好主意 - 是否有可能在每次有人希望上傳時使用會話ID。是否有任何隨機密鑰重複的機會[我可能聽起來很傻,但仍然]? – Ali 2010-09-14 09:06:31

+1

@Ali在理論上,是的,儘管它非常不可能。不過,爲了安全起見,在創建隨機密鑰時檢查這樣的目錄/前綴是否已經存在。使用會話ID時要小心 - 如果我在同一個會話中打開兩個瀏覽器窗口,並且想要同時寫兩個電子郵件,會發生什麼情況? – 2010-09-14 09:09:53

+0

啊gotcha。謝謝您的幫助 – Ali 2010-09-14 10:22:22