【问题标题】:ASP .NET Image url not wokASP .NET 图像 url 不起作用
【发布时间】:2020-05-16 10:28:54
【问题描述】:

我的图片名称是; "1#34DEMO34#13012020#151037.jpg"

从相机自动创建的图像名称。

1 = 相机 ID

34DEMO34 = 盘子

13012020 = ddMMyyyy

151037 = HHmmss

我测试它;

    <div style="bacground-image: url(1#34DEMO34#13012020#151037.jpg) width:200px; heig...." ></div>
    <image src="1#34DEMO34#13012020#151037.jpg" /> 
    <asp:Image ImageUrl="1#34DEMO34#13012020#151037.jpg" />

名称有 3 个“#”字符。如果我将一个 '#' 更改为 '_' 就可以了。

但我无法更改它,因为另一个应用程序使用了这些图像。

如何在我的页面上显示这些图片?

【问题讨论】:

  • # 是包含在 URL 中的片段标识符。您应该将文件重命名为不包含片段标识符的内容。最好为每个文件分配一个唯一 ID(例如 GUID),然后重命名文件以包含唯一标识符。您可以将文件的其他特征(相机 ID、板、日期等)存储在与该 ID 关联的数据库中。
  • 我无法重命名它,因为另一个应用程序正在使用这些图像。
  • 那么其他应用程序将不得不进行调整。 Fragment identifiers aren't even sent to the server。您可能能够对哈希进行 URL 编码(将 # 替换为 %23),但使用与 Web 不兼容的外部文件名是您真正应该改变的。

标签: asp.net image url


【解决方案1】:

使用Server.UrlEncode 对特殊字符进行编码。

<asp:Image id="imgTest" />

在后面的代码中,设置ImageUrl 属性。

imgTest.ImageUrl=Server.UrlEncode("1#34DEMO34#13012020#151037.jpg");

请注意,这也将编码\。因此,如果您的路径中有'\',请仅在文件名上使用UrlEncode,而不是整个路径。

【讨论】:

  • 非常感谢。为我工作。
猜你喜欢
  • 2013-09-01
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多