Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下载带有'+';其中的字符';姓名_Javascript_C# - Fatal编程技术网

Javascript 下载带有'+';其中的字符';姓名

Javascript 下载带有'+';其中的字符';姓名,javascript,c#,Javascript,C#,我正在处理一个具有上传和下载文件功能的C#web系统。其中一些文件的名称或文件夹中碰巧有“+”字符 我发现“+”在URL中是有问题的,因为它表示连接,加号应该编码为%2b 因此,我尝试设置newUrl=url.string.Replace(“+”,“%2b”),然后执行以下操作: System.Net.WebClient req = new System.Net.WebClient(); req.UseDefaultCredentials = true; byte[] buffer = req.

我正在处理一个具有上传和下载文件功能的C#web系统。其中一些文件的名称或文件夹中碰巧有“+”字符

我发现“+”在URL中是有问题的,因为它表示连接,加号应该编码为%2b

因此,我尝试设置
newUrl=url.string.Replace(“+”,“%2b”)
,然后执行以下操作:

System.Net.WebClient req = new System.Net.WebClient();
req.UseDefaultCredentials = true;
byte[] buffer = req.DownloadData(newUrl);
最终导致下载失败和应用程序异常消息

“远程服务器返回错误:(404)未找到。”

此外,尝试从浏览器访问该文件时 或 最后出现错误404

看来没有出路了。查找文件“draw%2bnumbers.pdf”会失败,因为它不存在,但另一方面,“draw+numbers.pdf”也会失败,因为没有“drawnumbers.pdf”


除了重命名存储库中的所有文件和文件夹外,是否有其他解决方案?

有解决方案。看看这个

默认情况下,IIS不允许双重转义,这会阻止+字符正确进入URL

答案更新:

我们需要在webconfig的安全部分添加
,并重置IIS一次以使其正常工作。 像这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering allowDoubleEscaping="true" />
    </security>
  </system.webServer>
</configuration>

有一个解决方案。看看这个

默认情况下,IIS不允许双重转义,这会阻止+字符正确进入URL

答案更新:

我们需要在webconfig的安全部分添加
,并重置IIS一次以使其正常工作。 像这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering allowDoubleEscaping="true" />
    </security>
  </system.webServer>
</configuration>


draw+numbers
将导致
draw-numbers
-URL中的原始
+
被视为一个空格。您是否可以显示要下载的实际URL(不带任何编码),即如果复制/粘贴到浏览器中就可以使用的URL?您是否尝试使用编码而不是手动替换字符?在此处显示完整URL没有帮助,因为访问它需要具有用户和密码的帐户。抱歉。@JamesThorpe:它不是只在URL的查询字符串部分才这样做吗?@Joey不确定你现在提到它,你可能是对的。OP-您可以使用“匿名”url显示某些内容,例如“example.com/my+file.pdf”-您试图检索的文件的完整url并不完全清楚。
draw+number
将导致
draw number
-url中的原始
+
被视为空格。您是否可以显示要下载的实际URL(不带任何编码),即如果复制/粘贴到浏览器中就可以使用的URL?您是否尝试使用编码而不是手动替换字符?在此处显示完整URL没有帮助,因为访问它需要具有用户和密码的帐户。抱歉。@JamesThorpe:它不是只在URL的查询字符串部分才这样做吗?@Joey不确定你现在提到它,你可能是对的。OP-您可以使用“匿名”url显示某些内容,例如“example.com/my+file.pdf”-您试图检索的文件的完整url并不完全清楚。IIS本身是否有web.config,或者您是指应用程序web.config?@niry:它起作用了。我花了一段时间才找到要编辑的web.config的位置,但一旦找到它,它就成功了。谢谢。IIS本身有web.config吗?或者你是说应用程序web.config吗?@niry:它起作用了。我花了一段时间才找到要编辑的web.config的位置,但一旦找到它,它就成功了。谢谢