如何将图片加载到<;asp:图像>;使用windows路径

本文关键字:asp 图像 gt 路径 windows 使用 lt 加载 | 更新日期: 2023-09-27 18:29:37

我有一个小的支付webApp,我们的客户可以在他们的IIS上安装它并使用它。他们可以上传自己的登录。

我们正在使用WyBuild更新此应用程序,但它将web文件夹中的所有文件替换为新版本,因此标识类型被删除,这就是为什么我们将客户的文件放在程序文件中,因此更新程序无法删除它们。

问题是我无法从以下路径加载图像

C:'Program Files'MyApp'ImageFoder'logo.jpg

我不知道怎么做,我几乎可以肯定这是不可能加载

我的web应用程序在上

C:'inetpub'wwwroot'MyApp'

我不能在webFolder上有图像,因为wyBuild在我尝试更新它们时会删除它们,我已经尝试过这样的路径:(不起作用)

 ///file:c:/program files/ .... etc

所以,问题是

如何使用asp:image控件的windows路径将图像加载到该控件?

如何将图片加载到<;asp:图像>;使用windows路径

您需要配置IIS虚拟文件夹以指向存储映像的备用位置。

不过,我不会把它们放在程序文件中,在wwwroot中的兄弟文件夹会更好。

请记住,NTFS权限很容易搞砸,而且在一个地方管理它们更容易。

更新-对于本地安装的、仅本地主机的站点或者(如果流量最小,这是个好主意。不适用于公共网站),您可以使用VirtualPathProvider从任意位置提供文件。听起来这个"网络应用程序"是因为某种原因像桌面应用程序一样安装的吗?如果你想从外部存储用户数据,用户的应用程序数据文件夹是合适的,但前提是网络应用程序拒绝外部连接,并且只能从机器访问。

既然你在处理图像,我会获取imageresizing.net库,并使用VirtualFolder插件动态地提供文件。在你的项目中,它比你的项目多200KB,但如果你需要的话,你可以免费调整动态图像大小和/或进行处理,并且你可以节省几天的时间来让VirtualPathProvider子类工作(这是一场噩梦)。

使用隔离存储不是更好吗?补充:我的意思是在用户机器上,如果找不到,请再次上传。这会完全消除你的开销。