文件名中的井号(#)导致错误

Jas*_*son 5 anchor coldfusion file-upload

我有一个非常简单的文件上传,允许用户上传PDF文件.在另一页上,我然后通过锚标记引用这些文件.但是,似乎当用户上传包含井号(#)的文件时,它会破坏锚标记.它不会导致任何类型的Coldfusion错误,它只是找不到文件.如果我删除了#,它就可以了.我相信还有很多其他角色会遇到同样的问题.

我已经尝试URLEncodedFormat()在锚点内放置文件名,但这没有帮助.我唯一能想到的是每次上传时重命名文件并删除"#"字符(以及任何其他"坏"字符).

必须有一个更简单的解决方案.有任何想法吗?

kev*_*ink 5

如果您控制文件上传代码,请尝试使用

 IsValid("url",usersFileName) or
 IsValid("regex",usersFileName,"[a-zA-Z0-9]")
Run Code Online (Sandbox Code Playgroud)

否则,如果你对正则表达式感到满意,我会建议像之前的海报一样评论

  REReplace(usersfilename,"[^a-zA-Z0-9]","","ALL")
Run Code Online (Sandbox Code Playgroud)

这些样本假设您将添加".pdf"并且仅允许字母和数字.如果您需要下划线或期间看起来像这样......

  REReplace(usersfilename,"[^a-zA-Z0-9\._]","","ALL")
Run Code Online (Sandbox Code Playgroud)

我不是一个正则表达的大师,如果我有其中一个错误我肯定有几个会跳进来纠正我:)