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

时间:2019-08-14 19:36:33

标签: dotnetnuke 2sxc

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

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

问题是,如果用户上传的文件名包含空格和/或非法字符,则背景图像将不会显示,因为浏览器不喜欢嵌入式CSS的文件名中的空格。

如何使ADAM上载的文件删除空格并删除非法字符?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

根据iJungleBoy的建议,我使用了HttpUtility.URLEncode。但是它用+替换了空格,并用%2f替换了空格,所以我使用.Replace将+替换为%20,将%f替换为/来创建一个很好的简单URL。现在,它接受其中带有空格的图像。