gpt4 book ai didi

java - 如何避免在 HttpServletRequest 中过滤文件名

转载 作者:行者123 更新时间:2023-11-30 06:48:01 25 4
gpt4 key购买 nike

我的文件名为 abc#123.pdf,通过将其连接到 url 传递到服务器端。

在服务器端,我使用这一行来获取文件名。但是只得到“abc”,#后面的字符串被过滤掉了。我怎样才能避免这种情况?

fileName= request.getParameter(DOCUMENT_NAME);

最佳答案

发生这种情况是因为 URL 中 # 之后的任何内容都被视为 URL 的引用部分。您需要在将查询参数发送到服务器端时对其进行编码。如果您使用的是 javascript,则可以执行以下操作。

var myUrl = "http://example.com?documentName=" + encodeURIComponent("abc#123.pdf");

java端获取参数后代码如下

encodeFileName = request.getParameter(DOCUMENT_NAME);

您可以使用 URLDecoder 解码该值。

String fileName = java.net.URLDecoder.decode(encodeFileName, "UTF-8");

确保在 javascript 中使用 encodeURIComponent,如果使用 encodeURI,它不会编码 #。

关于java - 如何避免在 HttpServletRequest 中过滤文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44929608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com