2010-03-22 47 views
0

我的一個網頁允許用戶創建一條新記錄,並且同時將任意數量的圖像與該記錄相關聯。我正在考慮這樣做的方式是,當用戶單擊「上傳」按鈕和文件上傳控件時,將每個圖像上傳到服務器。然後,當用戶點擊整個記錄的'更新'按鈕時,我將創建記錄,然後使用新記錄的標識,使用剛剛添加的記錄的標識將每個圖像添加到圖像表中。創建記錄時將圖像添加到SQL Server - 有沒有更好的方法來做到這一點?

哦,我將在每次應用程序啓動時從服務器上刪除所有臨時映像文件。我想我可以這樣做,因爲向記錄添加圖像不會太用,所以用臨時圖像填充服務器幾乎沒有什麼危險。

有沒有更好的方法來做到這一點?我對ASP.NET和SQLServer相當陌生,所以我完全接受任何關於如何改進這一點的建議。

回答

1

一般的做法似乎沒什麼問題 - 但有上傳圖片到數據庫,這取決於你的應用程序是如何打算的工作陷阱。

首先,除非你使用SQL Server 2008的FILESTREAM功能,它是不是真的建議你的數據庫中存儲的圖像。將數據流從數據庫中傳輸出來比從文件系統中傳輸數據要慢得多(我提到的FILESTREAM功能使用文件系統!),因此認爲將數據庫中的URL存儲到數據庫中比將數據圖像本身,特別是如果您需要應用程序的性能。這樣做的缺點是您必須記住備份您的映像作爲備份過程的一部分,因爲它們不在數據庫中。 (FILESTREAM解決這個問題爲好。)

根據多久你的應用程序重新啓動,你刪除的方法可能是好的,但它不是一個我建議。您可以在每次上傳時運行清理例程,甚至可以作爲Windows計劃任務運行。

+0

對於文件流。如果它是SQL Server 2005,那麼將存儲在表中的圖像數據的最佳大小是多少? – 2010-03-22 19:22:30

+0

小於1MB,越小越好 – 2010-03-23 01:36:04

相關問題