如何将图片加载到 使用Windows路径

问题描述 投票:0回答:2

我有一些支付webApp,我们的客户可以在他们的IIS上安装它并使用它。他们可以上传自己的标识。

我们使用WyBuild来更新这些应用程序,但它用新版本替换了web文件夹中的所有文件,因此删除了标识,这就是我们将客户的文件放在程序文件中的原因,因此更新程序无法删除它们。

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

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

我不知道怎么做,我几乎可以肯定无法加载

我的网络应用程序已开启

C:\inetpub\wwwroot\MyApp\

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

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

所以,问题是

如何使用它的窗口路径将图像加载到asp:image控件?

c# asp.net .net wybuild
2个回答
6
投票

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

我不会把它们放在Program Files中,但是wwwroot中的兄弟文件夹会更好。

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

更新 - 适用于本地安装的仅限本地站点的网站另外(如果您拥有最少的流量,这只是一个好主意。不适用于公共网站),您可以使用VirtualPathProvider从任意位置提供文件。听起来这个'网络应用'出于某种原因像桌面应用程序一样安装?如果要在外部存储用户数据,则用户的App Data文件夹将是合适的,但仅限于Web应用程序拒绝外部连接,并且只能从计算机访问。

由于你正在处理图像,我会使用grab the imageresizing.net库并使用VirtualFolder插件动态地提供文件。它在您的项目中增加了200KB,但是如果需要,您可以获得免费的动态图像大小调整和/或处理,并且您可以节省几天使VirtualPathProvider子类工作(它们是一场噩梦)。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.