Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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
Java 如何在Spring中处理已上载文件的列表?_Java_Spring_Upload - Fatal编程技术网

Java 如何在Spring中处理已上载文件的列表?

Java 如何在Spring中处理已上载文件的列表?,java,spring,upload,Java,Spring,Upload,很抱歉,我没有发现这样的问题,所以我创建了一个新问题 我学习Java,这是我第一个真正的实践项目。 我需要做一个文件解析器。因此,我为一个文件做了这项工作,它工作正常。 但我需要它来处理文件目录 所以,考虑到我已经改变了 File to parse: <input type="file" th:field="*{address}" id="address"> 我的控制器: @Controller @RequestMappi

很抱歉,我没有发现这样的问题,所以我创建了一个新问题

我学习Java,这是我第一个真正的实践项目。 我需要做一个文件解析器。因此,我为一个文件做了这项工作,它工作正常。 但我需要它来处理文件目录

所以,考虑到我已经改变了

File to parse: <input type="file" th:field="*{address}" id="address">
我的控制器:

@Controller
@RequestMapping("/parser")
public class ParserController {


    private final FileParser fileParser;

    @Autowired
    public ParserController(FileParser fileParser) {
        this.fileParser = fileParser;
    }

    @GetMapping()
    public String parser(Model model) {
        model.addAttribute("file", new File());
        return "parser/parser";
    }

    @PostMapping
    public String create(@ModelAttribute("file") File file) throws IOException {
        FileParser.parse(file);
        return "parser/done";
    }
}
我的解析器(它不是真正的逻辑,正如示例所示):

@组件
公共类文件解析器{
公共静态void解析(文件)引发IOException{
Path pathFrom=Path.of(file.getAddress());
Path pathTo=Files.createFile(Path.of(“C:\\Users\\Xiaomi\\Desktop\\parsedtest.txt”);
列表=新的ArrayList();
list=Files.readAllLines(pathTo);
列表。添加(“文件”);
列表。添加(“was”);
添加(“已解析”);
FileOutputStream fos=新的FileOutputStream(String.valueOf(pathTo));
打印流打印机=新打印流(fos);
printer.flush();
打印机关闭();
FileWriter writer=新的FileWriter(String.valueOf(pathTo));
对于(字符串列表器:
(列表){
writer.write(lister+“\n”);
}
writer.close();
}
和视图:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>MEL Parser</title>
</head>
<body>
<form enctype="multipart/form-data" method="POST" action="/parser" th:object="${file}">
    File to parse: <input type="file" th:field="*{address}" id="address" webkitdirectory directory multiple>
    <br/>
    <br/>
    <input type="submit" value="Parse">
</form>
</body>
</html>

梅尔分析器
要分析的文件:



要在一种方法中接收多个文件,请尝试以下方法

@RequestMapping("/saveProducts")
public String uploadResources( HttpServletRequest servletRequest, 
                             @ModelAttribute Product product,
                             Model model) 
{
    //Get the uploaded files and store them
    List<MultipartFile> files = product.getImages();
}
@RequestMapping(“/saveProducts”)
公共字符串上载资源(HttpServletRequest servletRequest,
@模型属性产品,
(模型)
{
//获取上传的文件并存储它们
List files=product.getImages();
}
此外,在这种情况下,解决方案可以是将javascript代码放在页面上,以便逐个发送文件
@PostMapping
    public String create(HttpServletRequest servletRequest,
                         @ModelAttribute("filesList") FilesList filesList,
                         Model model) throws IOException {
        List<MultipartFile> files = filesList.getAddresses();
        List<String> addresses = new ArrayList<>();
        if (null != files && files.size() > 0){
            for (MultipartFile multipartFile : files) {
                String address = multipartFile.getOriginalFilename();
                addresses.add(address);
            }
        }
            FileParser.parse(addresses);
        return "parser/done";
    }
公共字符串创建(HttpServletRequestServletRequest, @ModelAttribute(“文件列表”)文件列表文件列表, 模型)抛出IOException{ List files=filesList.getAddresses(); 列表地址=新的ArrayList(); if(null!=文件和文件.size()>0){ for(MultipartFile MultipartFile:files){ 字符串地址=multipartFile.getOriginalFilename(); 地址。添加(地址); } } 解析(地址); 返回“parser/done”; }
谢谢您的帮助!
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>MEL Parser</title>
</head>
<body>
<form enctype="multipart/form-data" method="POST" action="/parser" th:object="${file}">
    File to parse: <input type="file" th:field="*{address}" id="address" webkitdirectory directory multiple>
    <br/>
    <br/>
    <input type="submit" value="Parse">
</form>
</body>
</html>
@RequestMapping("/saveProducts")
public String uploadResources( HttpServletRequest servletRequest, 
                             @ModelAttribute Product product,
                             Model model) 
{
    //Get the uploaded files and store them
    List<MultipartFile> files = product.getImages();
}
@PostMapping
    public String create(HttpServletRequest servletRequest,
                         @ModelAttribute("filesList") FilesList filesList,
                         Model model) throws IOException {
        List<MultipartFile> files = filesList.getAddresses();
        List<String> addresses = new ArrayList<>();
        if (null != files && files.size() > 0){
            for (MultipartFile multipartFile : files) {
                String address = multipartFile.getOriginalFilename();
                addresses.add(address);
            }
        }
            FileParser.parse(addresses);
        return "parser/done";
    }