当前位置: 首页 > 编程语言 > C#

如果找不到指定的图像文件,显示默认图像的最佳方式是什么?分享

时间:2023-04-10 13:00:02 C#

如果找不到指定的图像文件,显示默认图像的最佳方法是什么?我有一般的电子商务应用程序,我将ITEM_IMAGE_NAME存储在数据库中,有时还存储管理员MISSPELL的图像名称。为避免“丢失图像”(IE中的红色X),每次显示产品列表时,我都会检查服务器以查找与产品相关的图像,如果该文件不存在-我将其替换为默认图像.据我所知,这不会影响性能,但我想知道是否有任何替代方法可以解决“丢失图像”问题。我正在使用ASP.NET+C#(.NET3.5)一些代码:foreach(ItemiteminItems){stringpath=Path.Combine("~/images/",item.categoryImage);item.categoryImage=文件。存在(Server.MapPath(路径))?item.categoryImage:GetImageDependingOnItemType();您可能会考虑使用javascript编辑:或者如果请求的图像不存在,则以编程方式404.aspx返回默认图像。.fallback{background-image:url("fallback.png");}如果加载了https://stackoverflow.com/questions/717734/best-way-to-display-default-image-if-specified-image-file-is-not-found/missing.png,它将覆盖空间为它分配,就好像没有指定回退一样。(假设它是不透明的。)如果https://stackoverflow.com/questions/717734/best-way-to-display-default-image-if-specified-image-file-is-not-found/missing.png失败load,然后空格将填充fallback.png。你仍然会得到一个“损坏的图像”图标,但我更喜欢它......有点“修复我”的暗示。如果您的图像大小不同,默认情况下会注意到背景图块。您可以使用background-repeat:no-repeat;如果您不喜欢,您可以在服务器上指定应该为所有不存在的图像文件请求返回什么图像。这样,用户可以获得“2AWESUM2SHO”笑笑猫,而不是红x。我觉得你的方法很好。我会在函数或.categoryImage访问器中执行此操作。我想我会找到一种方法来保持数据一致,而不是让用户输入不一致的数据。也许您的管理应用程序可以允许管理员选择现有图像或上传新图像,然后根据此输入设置图像名称以确保图像存在。仅当从数据库中删除对图像的所有引用时,图像才会被删除。限制与您的应用程序的数据交互,这样人们就不会犯这些错误。处理此问题的另一种方法是使用处理程序(或ASP.NETMVC中的控制器)根据id执行图像查找并返回图像数据。结合缓存,这会非常有效,并允许您进行图像替换。我喜欢Erik的解决方案,但它不会在第一次执行后删除事件,因为如果您使用该代码,比方说MVC局部视图,这只会在第一次加载时起作用。所以我会选择:如果你在相同的情况下有很多图像,比如网格,你可以这样做:$("img").on("error",function(){$(this).attr('src','default.jpg');});当然,您可能希望使用更具体的jQuery选择器。以上是C#学习教程:如果找不到指定的图片文件,显示默认图片的最佳方式是什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: