gpt4 book ai didi

java - 在 Java Servlet 中读取文件到字符串

转载 作者:行者123 更新时间:2023-12-01 12:45:19 25 4
gpt4 key购买 nike

我的 HTML 页面中有一个表单,用户可以在其中填写两个文本字段或上传两个文件,然后单击一个按钮进行提交。这是表单的代码:

<form name="submitButton" action="DAOserv" method="POST" enctype="multipart/form-data">
<div id="SQL_form">
<div >
<textarea name="SQL" placeholder="BAU Reason"
rows="11"></textarea>
<label for="BAUInputFile">BAU File</label> <input type="file"
id="BAUInputFile">
</div>
</div>

<div >
<div >
<textarea name="BAU" placeholder="SQL Queries"
rows="11"></textarea>
<label for="SQLInputFile">SQL File</label> <input type="file"
id="SQLInputFile">
</div>
</div>
<button type="submit" >Submit</button>
</form>

为了澄清,第一个 DIV 包含用于一组查询的文本框和文件上传按钮,第二个 DIV 包含用于业务原因的文本框和文件上传按钮。用户必须上传文件或写入两个部分中的每一个。

单击按钮会提交两个表单字段,但我无法弄清楚或找到在线解决方案(大多数帖子都讨论将文件上传到 servlet 目录)是如何简单地将文件读取为字符串,当用户将文件上传到两个表单字段之一或全部时

本质上,Servlet 将检查每个文本字段,如果为空,它将检查是否有已上传的文件,如果有,它将将该文件中的文本解析为字符串。

预先感谢您的帮助!

最佳答案

如果你使用的是Servlet3.0

看看这个帖子How to upload files to server using JSP/Servlet?

你会得到类似这样的文件部分内容

InputStream fileContent = filePart.getInputStream();

读取文件内容到字符串

  1. 通过 Apache IOUtils

    String text = IOUtils.toString(inputStream, StandardCharsets.UTF_8.name());

  2. Java 流读取

    StringBuilder textBuilder = new StringBuilder(); 尝试(Reader reader = new BufferedReader(new InputStreamReader (inputStream, Charset.forName(StandardCharsets.UTF_8.name())))) { 整数c=0; while ((c = reader.read()) != -1) { textBuilder.append((char) c); } }

  3. 使用 Java8 阅读

    公共(public)静态字符串读取(InputStream输入)抛出IOException { 尝试(BufferedReader缓冲区=新BufferedReader(新InputStreamReader(输入))){ return buffer.lines().collect(Collectors.joining("\n")); } }

希望这有帮助!

关于java - 在 Java Servlet 中读取文件到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24763307/

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