使用 Apache Httpclient 上传时在文件中写入额外不需要的数据

Extra Unwanted Data Written in File While Uploading with Apache Httpclient

我正在尝试使用 Apache Httpclient 库和以下代码上传数据库转储文件:

HttpEntity entity = MultipartEntityBuilder.create()
                .addPart("file",new FileBody(new File(fileDirectory))).build();
HttpPut request = new HttpPut(url + "/" + fileName);
request.setEntity(entity);
request.setHeader("Authorization", "Basic "+authentication);
HttpClient client = HttpClientBuilder.create().build();

这是我的文件中写入的额外不需要的数据:

---NjPddruz8ocyxDtNnXaX1eigSH6W-gGgXD1O
Content-Disposition: form-data; name="file"; filename="wordpress.sql"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

--
-- Generated by java-mysql-exporter
-- Date: 14-11-2020 15:18:38
--

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

--
-- start  table dump : wp_commentmeta
--

有什么办法可以避免这些行被写入我的原始文件?

这是多部分数据的格式。多部分数据旨在在单个请求中包含多个不同的数据 objects(因此有分隔符和 headers)。如果您只想上传单个文件,则不需要使用多部分格式的数据。您可以改为使用 FileEntity 上传。