如何在 2SXC 中重命名通过 ADAM 上传的文件?

How can I rename files uploaded through ADAM in 2SXC?

使用 2SXC 内容模块,我有一个简单的 Hero 内容类型和模板,其中包括标题和背景图像。我使用 C# Razor 模板,当我的用户通过 ADAM 上传背景图片时,razor 模板通过内联 CSS 应用背景。像这样:

@if (Content.BackgroundImage != "") {
   <style type="text/css">
    section.hero {
     background-image: url(@Content.BackgroundImage);
   }
}

问题是,如果用户上传的文件名包含空格 and/or 非法字符,背景图像将不会出现,因为浏览器不喜欢行内文件名中的空格 CSS.

如何让ADAM上传的文件去掉空格和非法字符?

您必须对它们进行 url 编码,例如将 </code> 替换为 <code>%20。使用 https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525738(v%3Dvs.90)HttpUtility.UrlEncode 或其中一种变体 :)

@HttpUtility.UrlEncode(Content.BackgroundImage).Replace("+", "%20").Replace("%2f","/")

根据iJungleBoy的建议,我使用了HttpUtility.URLEncode。但是它用 + 替换了空格,用 %2f 替换了空格,所以我使用 .Replace 将 + 换成 %20,将 %f 换成 / 来制作一个简单的 URL。这现在接受其中包含空格的图像。