我正在开发一个Web应用程序。在这里,我将附件/上传存储在服务器物理目录中。上传的父文件夹可能包含特殊字符,例如'?'
网址示例
"~/ChapterFiles/Capgeminisdfsdf_BE CSE ?_CoverPic/CoverPic.jpg"
当我在此网址上Server.MapPath()
时,我收到错误"Illegal characters in path."
无法删除文件夹名称中的问号,因为它是要求的一部分。请提出解决方案,我需要紧急解决。
答案 0 :(得分:0)
您可以使用以下内容:
String absoluteDir = Server.MapPath("~");
String myRelativePath = "~/ChapterFiles/Capgeminisdfsdf_BE CSE ? _CoverPic/CoverPic.jpg".Replace("/","\\");
String absolutePath = Path.Combine(absoluteDir,myRelativePath);
它会起作用。我建议你为这个函数写一些单元测试。
答案 1 :(得分:0)
使用HttpServerUtility.UrlEncode
和UrlDecode
对字符串进行编码/解码。
答案 2 :(得分:0)
Question marks are not allowed in folder names in Windows。您对其当前形式的要求是不可能实现的,并且没有“修复”。您需要重新考虑如何将URL映射到文件夹和文件名。
答案 3 :(得分:-1)