File Upload & Download
File Upload
Section titled “File Upload”Upload routes receive a Map<String, Buffer> of uploaded files:
public class UploadHandler extends FileUploadRoute<UploadResponse, MyState> {
@Override public RequestPipeline<UploadResponse> handle(HttpStream<Map<String, Buffer>, MyState> e) { return e.complete(ctx -> { int totalBytes = ctx.in().values().stream().mapToInt(b -> b.getBytes().length).sum(); return HttpResult.success(new UploadResponse(totalBytes)); }); }}Register the upload route:
routesRegister.uploadFileRoute("/upload", Method.POST, appState, new UploadHandler());File Download
Section titled “File Download”Download routes return a DownloadFileResponse:
public class DownloadHandler implements FileDownloadRoute<String, MyState> {
@Override public RequestPipeline<DownloadFileResponse> handle(HttpStream<String, MyState> e) { return e.complete(ctx -> HttpResult.success(new DownloadFileResponse(Buffer.buffer("file contents"), "report.csv"))); }}Register the download route with a content type:
routesRegister.downloadFileRoute("/download", Method.GET, appState, new DownloadHandler(), "text/csv");