这是我遇到的错误
这是我写的Controller层代码(可以实现遍历文件系统的文件名称,并将其转换为Stream流返回)
package com.experience.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.Arrays;
import java.util.stream.Stream;
/**
* @author 汪海洋
*/
@Controller
public class File_download_list_Controller {//TODO 换成数据库维护
@RequestMapping( "getFileList")//BETTER 值得更好的
@ResponseBody
public Stream<String> getFileList(HttpServletRequest request){
String filePath = request.getServletContext().getRealPath("/save");
File file = new File(filePath);
if (file.exists()){
Stream<String> stream = Arrays.stream(file.list()).toList().stream();
stream.forEach(n -> System.out.println(n));
return stream;
}
System.out.println("错误!");
return null;
}
}
这是我写的前端页面,用来将返回的json输出到控制台
<%--
Created by IntelliJ IDEA.
User: 汪海洋
Date: 2023/8/13
Time: 9:55
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>下载页面</title>
</head>
<body>
<form action="/download" method="post">
<input type="text" name="fileName" />
<input type="submit" value="下载"/>
</form>
</body>
<script type="text/javascript">
window.onload = function () {
var xhr = new XMLHttpRequest();
xhr.open("get","/getFileList",true)
xhr.send();
xhr.onreadystatechange = function (response) {
if (xhr.status === 200 && xhr.readyState === 4){
let data = JSON.parse(xhr.responseText);
console.log(data);
}
}
}
</script>
</html>