我正在尝试从一个文件中提取byte [],我将在后调用中的表单数据中收到该文件。但是,我没有找到任何有用的代码片段来帮助我获取byte []。以下是我正在尝试的代码
public static void main( String[] args )
{
Vertx vertx =Vertx.vertx();
HttpServer httpServer= vertx.createHttpServer() ;
Router router=Router.router(vertx);
router.route().handler(BodyHandler.create().setUploadsDirectory("uploads"));
router.post("/form").handler(ctx -> {
ctx.response().putHeader("Content-Type", "text/plain");
ctx.response().setChunked(true);
MultiMap attributes = ctx.request().formAttributes();
Set<io.vertx.ext.web.FileUpload> uploads = ctx.fileUploads();
ctx.response().end();
}
httpServer
.requestHandler(router::accept)
.listen(8091);
}
此处文件将上传到uploads文件夹中的服务器上。但是,我不想在服务器上传文件,而是希望文件的byte []传输到不同的服务进行上传。所以,如果我评论这一行 。router.route()处理(BodyHandler.create()setUploadsDirectory( “上载”)。); 文件未上传到系统。所以,如果我没有在服务器上传文件,现在有人可以告诉我如何获取文件的byte []。
答案 0 :(得分:2)
FileUpload
对象为您提供上传文件的路径。您可以使用Vert.x FileSystem
API加载其内容:
vertx.fileSystem().readFile(fileUpload.uploadedFileName(), ar -> {
if (ar.succeeded()) {
byte[] content = ar.result().getBytes();
// use the content
} else {
// deal with failure
}
});