如何在 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。这现在接受其中包含空格的图像。
使用 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。这现在接受其中包含空格的图像。