Dav*_*ave 0 javascript c# browser url
尝试访问C#程序后面的代码中的文件时,我的Web程序出错,目录名和文件名之间有反斜杠.该文件的地址进入我的网页,查询值为'deaths\bakerd.htm'.但是,浏览器会将其转换为"deaths%08akerd.htm".
网页中的网址为
'http://localhost:57602/obitm.aspx?url=deaths%08akerd.htm'
Run Code Online (Sandbox Code Playgroud)
并说网页找不到,但网页obitm.aspx确实存在,所以为什么它会说不?
如果我手动将Windows资源管理器中的查询值更改为'deaths/bakerd.htm',它在浏览器中作为查询值进行时不进行任何转换,并且我能够在我的C#程序中访问该文件.
我尝试使用javascript更改查询值
thisurl = url.replace("\\", "/")
Run Code Online (Sandbox Code Playgroud)
但这并没有改变任何事情.
我没有在我的C#程序中尝试任何转换.那么我如何以编程方式将'\'更改为'/'?我不知道为什么会这样,而且非常令人困惑.任何帮助表示赞赏.
只需将\n转换为URL字符串中的\就不会对你有效,因为在这种情况下,"\ b"将被转换为退格字符,该字符被编码到%08中 - 这是相当于ASCII的ASCII值的十六进制值.退格字符.
要解决这一问题,您可以将"%08"转换为字符串"/ B",但是对于各种字符有很多HTML代码,这些代码对您来说不会有效或有趣.
你从哪里得到包含文件名名称的原始字符串?如果它是您可以控制的内容,则在读取文件的路径/名称时以及在将URL传递给Web App之前将"\"转换为"/".
您也可以在发送之前对路径进行HTMLEncode,以便字符串成为
http://localhost:57602/obitm.aspx?url=deaths%92Bakerd.htm'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |