我试图根据我通过dirFile参数传入的路径从服务器返回一个文件。但是,我无法将dirFile参数提供给控制器。
这是我服务器上的控制器:
@RequestMapping(value="/test/getFile/{dirFile}", method = RequestMethod.GET)
public void doDownload(HttpServletRequest request, HttpServletResponse response,
@PathVariable String dirFile) throws IOException { ...returns file }
以下是我目前正在拨打电话的方式:
<a ng-href="/Web/test/getFile/{{encodeFileURL(filetree.currentNode.id)}}">Click here to download file</a>
参数填充正常并生成以下URL:
http://localhost:8080/Web/test/getFile/C%3A%5Capache-tomcat-7.0.54%5Clogs%5Cfile.log
如果没有参数控制器完成它的工作并返回一个我已经硬编码的文件,但我想返回传入的文件。我似乎无法让控制器接受文件路径的参数,它总是返回类似400 Bad Request Error的内容。我尝试了一些不同的弹簧处理程序,但找不到有用的东西。我做错了什么?
更新 它是编码的东西。我认为它是用UTF-8编码的,而tomcat正在使用其他东西。我将尝试以JSON或其他方式传递。
答案 0 :(得分:0)
可能是因为默认情况下,Spring将带扩展名的URL视为文件名。尝试将useSuffixPatternMatch
的{{1}}属性设置为handlerMapping
。
如果您使用Java配置:
false
答案 1 :(得分:0)
您可能需要在@PathVariable注释中设置路径变量名称。
在您的情况下:@PathVariable("dirFile")
。