我在ASP.NET / c#/ SQL SQL上有一个分类广告系统,而我正试图找出在放置广告时人们上传的图片的存储位置。广告本身存储在SQL服务器数据库中。
图像现在存储在我的webapp的子文件夹中。它似乎工作正常,但我最近才发现一个大问题。每次用户删除广告时,附加的图像也将被删除,包括它们所在的文件夹。这会导致重新启动asp.net应用程序。我搜索了互联网,发现重新启动网络应用程序实际上是在删除子文件夹时的行为。
显然,我需要解决这个问题。但是怎么做呢?我可以在哪里存储图像:
答案 0 :(得分:0)
请参阅此问题Deleting a directory results in application restart
另一种选择是将图像存储在DB中。
答案 1 :(得分:0)
另一种选择是将图像放在与网站完全无关的目录中,然后通过脚本页面或处理程序提供图像。它会使你的所有图像网址看起来都像mydomaincom/serveimage.aspx?imageid=323422
,但除非你指望某个地方的名字真的不重要。显然,首先需要修改为图像提供服务的页面,但是如果删除了这个不相关目录的子目录,那么IIS根本就不应该关心。
答案 2 :(得分:-2)
也许你可以用SQL存储图像(在这种情况下检查文件流功能) 如果没有,我想你有一个商业门面类,服务类或任何你想要的地方,一个方法“DeleteAd”。
这种方法必须做两件事:
- 删除sql数据 - 删除文件图像
另外,您可以将图像存储更改为Web应用程序外部的另一个文件夹。您可能最终会编写一个自定义处理程序(myhandler.ashx?fileid = XX)来提供文件,或者如果您使用MVC则自定义路由和控件。