2010-03-22 49 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

相关问题