2010-01-05 80 views
1

我正在使用asp.net中的两个不同的网站。在第一个项目中,我将一些图像上传到项目根目录下的特定文件夹,并将文件名保存在数据库中,现在我试图在第二个项目的某个页面上显示此图像我知道数据库和图像的文件名文件夹作为绝对拍拍,但我还没有能够显示图像,即使在萤火虫看图像src是正确的src="D:/MyFolder/image.jpg"图像不显示,可能是因为它没有指向正确的目录。 我也尝试使用Server.MapPath,然后我的D位置,但仍然没有成功。ImageUrl试图在项目根目录外显示图像

我确定有人曾经遇到同样的情况,并且真的希望得到一些提示来解决这个问题。 预先感谢您

+0

代码示例将是很好 – Jason 2010-01-05 22:32:30

回答

2

我发现我的解决方案,很奇怪,但我没有抓住它。项目下载的图片始终可以通过项目http://www.yourwebsite.com/images/photo.png的URL访问,现在可以在第二个项目中使用,这个项目可以使用这个URL来引用图像并连接存储在数据库上的文件名。我认为这是最好的解决方案,并且不会改变代码访问安全性,我认为它可能带来其他问题。无论如何谢谢你们。

+0

+1进行后续跟解释。 (另外,您可以将自己的答案标记为解决方案) – 2010-01-11 17:10:30

1

我不认为您可以在默认情况下在应用程序路径之外提供文件。它被称为代码访问安全性。你可以在这里读了它:
http://msdn.microsoft.com/en-us/library/930b76w0.aspx

您可以通过在你的web.config改变你的信任级别高解决这个问题:
http://msdn.microsoft.com/en-us/library/tkscy493.aspx

我不建议这样做,任何网站,可从外部访问。实际上,根据您的应用程序托管方式/位置,此选项可能会受到限制。

1

您只能“链接”相对于同一项目存在或通过绝对URL托管在另一个站点上的文件。

如果您想要在应用程序/网站之外(在磁盘或数据库中)提供文件服务,您将需要构建一种机制来获取文件和二进制文件将其写入浏览器,设置MIME类型等。最好使用HttpHandler完成。

1

如果你想显示,是不是在你的项目中(我的意思是它存在于其他一些项目或一些其它驱动器)的图像只需要创建一个虚拟目录在IIS

  1. 进入“运行” ,类型inetmgr
  2. 您的项目右键单击并添加虚拟目录
  3. 给别名和路径,这样它就像文件夹在你的项目