背景
在学习实验楼的java路径,正好学习到struts2的文件上传与下载,遇到错误,准确的说是下载出了问题。
Can not find a java.io.InputStream with the name [targetFile] in the invocation stack……
思路
最开始以为是struts配置文件与Action文件以及jsp文件没有对应上关系。看了许久找不出,直接百度,说是获取文件路径不对,根本就没有取到文件。所以写了一句输出,发现文件为空后,我对着文件路径进行了修改。
**
更新一下,重新看这个代码,发现更多的问题。多文件上传的时候,上传的路径书写不正确,之前我只使用了一个txt文件测试,所以多文件没有发现上传其实是失败的,我会在最后面直接贴上修改后成功的重要代码。操作这一部分仅供参考。2017.12.26
上传下载,主要就是要看清文件上传下载路径,路径对上了,再来排除其他原因。
**
操作
1
System.out.println(realPath+"ssssssssssssss"); System.out.println(ServletActionContext.getServletContext().getResourceAsStream(realPath));
2观察输出结果,流的realPath路径错误,再观察realPath,uploadMultifiles来自哪
realPath=downloadPath+"/"+getFilename();
-报错信息
3观察downloadPath,与上传路径对比
http://localhost:8080/FileUpload/uploadFiles/01.txt
http://localhost:8080/FileUpload/uploadMultiFiles/01.txt4问题出在downloadPath,修改
5修改之后的结果
代码