Uploading Files in ASP.NET 2.0
您在如何做到這一點的空氣似乎了,所以我給你一些想法,讓你去。
如果你想使用的文件系統確保你知道有多少文件每個目錄是允許的極限,所以你可以設置創建子目錄的系統。 http://ask-leo.com/is_there_a_limit_to_what_a_single_folder_or_directory_can_hold.html
我會做一個表是這樣的:
FileUpload
UploadID int identity/auto generate PK, used as FK in other tables
InternalFileName string
DisplayFileName string
Comment string
MimeType string
FileSizeBytes int
FileHash string MD5 Hash of a File
UploadUserID int FK to UserID
UploadDate date
您將包括UPLOADID在「擁有」此上載,喜歡與它相關聯的順序表等您可以添加InternalDirectory
列,但我更喜歡根據常量Root值+某個關鍵特定值來計算此值。例如,完整的文件名和目錄是:
Constant_Root +「\」 +訂單id +「\」 + InternalFileName
你可以使InternalFileName是UPLOADID並從原始文件的擴展名。這樣它將是唯一的,但您必須將該行作爲進程的第一部分插入,並在知道文件名和標識/自動生成行值之後對其進行更新。您可以使InternalFileName類似於YYYMMDDhhmissmmm和原始文件的文件擴展名,根據您使用子目錄的方式可能足夠獨特。
我喜歡存儲MD5 Hash of a File這使得檢測重複容易。
Mime類型和FileSizeBytes可以從文件系統中找到,但如果你把它們存儲在數據庫中,這讓一些保養容易,因爲你可以查詢大型文件或某些類型的文件。