@Override public Set<FileUpload> fileUploads() { return decoratedContext.fileUploads(); }
for (FileUpload f : ctx.fileUploads()) { System.out.println("f"); ctx.response().write("Filename: " + f.fileName());
@Override public Set<FileUpload> fileUploads() { return inner.fileUploads(); }
@Override public Collection<Part> getParts() { Set<FileUpload> fileUploads = context.fileUploads(); return fileUploads.stream().map(FileUploadPart::new).collect(Collectors.toList()); }
@Override public Part getPart(String name) { Optional<FileUpload> upload = context.fileUploads() .stream() .filter(fileUpload -> fileUpload.name().equals(name)) .findFirst(); if (!upload.isPresent()) { LOGGER.debug("No such file with name: {}.", name); return null; } final FileUpload fileUpload = upload.get(); return new FileUploadPart(fileUpload); }
private void deleteFileUploads() { if (cleanup.compareAndSet(false, true)) { for (FileUpload fileUpload : context.fileUploads()) { FileSystem fileSystem = context.vertx().fileSystem(); String uploadedFileName = fileUpload.uploadedFileName(); fileSystem.exists(uploadedFileName, existResult -> { if (existResult.failed()) { LOGGER.warn("Could not detect if uploaded file exists, not deleting: " + uploadedFileName, existResult.cause()); } else if (existResult.result()) { fileSystem.delete(uploadedFileName, deleteResult -> { if (deleteResult.failed()) { LOGGER.warn("Delete of uploaded file failed: " + uploadedFileName, deleteResult.cause()); } }); } }); } } } }
private void deleteFileUploads() { if (cleanup.compareAndSet(false, true) && handleFileUploads) { for (FileUpload fileUpload : context.fileUploads()) { FileSystem fileSystem = context.vertx().fileSystem(); String uploadedFileName = fileUpload.uploadedFileName(); fileSystem.exists(uploadedFileName, existResult -> { if (existResult.failed()) { log.warn("Could not detect if uploaded file exists, not deleting: " + uploadedFileName, existResult.cause()); } else if (existResult.result()) { fileSystem.delete(uploadedFileName, deleteResult -> { if (deleteResult.failed()) { log.warn("Delete of uploaded file failed: " + uploadedFileName, deleteResult.cause()); } }); } }); } } } }
@Test public void testFileUploadFileRemovalIfAlreadyRemoved() throws Exception { testFileUploadFileRemoval(rc -> { vertx.fileSystem().deleteBlocking(rc.fileUploads().iterator().next().uploadedFileName()); rc.response().end(); }, true, 200, "OK"); }
public BHandler(RoutingContext context, long contentLength) { this.context = context; Set<FileUpload> fileUploads = context.fileUploads();
BHandler(RoutingContext context) { this.context = context; Set<FileUpload> fileUploads = context.fileUploads();
private FileUpload getFile() { final Set<FileUpload> fileUploads = this.context.fileUploads(); if (fileUploads.isEmpty()) { return null; } else { return fileUploads.iterator().next(); } } }
@Test public void testMultiFileUpload() throws Exception { int uploads = 1000; router.route().handler(rc -> { assertEquals(uploads, rc.fileUploads().size()); rc.response().end(); }); testRequest(HttpMethod.POST, "/", req -> { String boundary = "dLV9Wyq26L_-JQxk6ferf-RT153LhOO"; Buffer buffer = Buffer.buffer(); for (int i = 0; i < uploads; i++) { String header = "--" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"file" + i + "\"; filename=\"file" + i + "\"\r\n" + "Content-Type: application/octet-stream\r\n" + "Content-Transfer-Encoding: binary\r\n" + "\r\n"; buffer.appendString(header); buffer.appendBuffer(TestUtils.randomBuffer(4096*16)); buffer.appendString("\r\n"); } buffer.appendString("--" + boundary + "\r\n"); req.headers().set("content-length", String.valueOf(buffer.length())); req.headers().set("content-type", "multipart/form-data; boundary=" + boundary); req.write(buffer); }, 200, "OK", null); }
/** * @return a set of fileuploads (if any) for the request. The context must have first been routed to a {@link io.vertx.rxjava.ext.web.handler.BodyHandler} for this to work. */ public Set<io.vertx.rxjava.ext.web.FileUpload> fileUploads() { Set<io.vertx.rxjava.ext.web.FileUpload> ret = delegate.fileUploads().stream().map(elt -> io.vertx.rxjava.ext.web.FileUpload.newInstance(elt)).collect(java.util.stream.Collectors.toSet()); return ret; }
/** * @return a set of fileuploads (if any) for the request. The context must have first been routed to a {@link io.vertx.rxjava.ext.web.handler.BodyHandler} for this to work. */ public Set<io.vertx.rxjava.ext.web.FileUpload> fileUploads() { Set<io.vertx.rxjava.ext.web.FileUpload> ret = delegate.fileUploads().stream().map(elt -> io.vertx.rxjava.ext.web.FileUpload.newInstance(elt)).collect(java.util.stream.Collectors.toSet()); return ret; }
private void testFileUpload(String uploadsDir, int size) throws Exception { String name = "somename"; String fileName = "somefile.dat"; String contentType = "application/octet-stream"; Buffer fileData = TestUtils.randomBuffer(size); router.route().handler(rc -> { Set<FileUpload> fileUploads = rc.fileUploads(); assertNotNull(fileUploads); assertEquals(1, fileUploads.size()); FileUpload upload = fileUploads.iterator().next(); assertEquals(name, upload.name()); assertEquals(fileName, upload.fileName()); assertEquals(contentType, upload.contentType()); assertEquals("binary", upload.contentTransferEncoding()); assertEquals(fileData.length(), upload.size()); String uploadedFileName = upload.uploadedFileName(); assertTrue(uploadedFileName.startsWith(uploadsDir + File.separator)); Buffer uploaded = vertx.fileSystem().readFileBlocking(uploadedFileName); assertEquals(fileData, uploaded); // the data is upload as HTML form, so the body should be empty Buffer rawBody = rc.getBody(); assertEquals(0, rawBody.length()); rc.response().end(); }); sendFileUploadRequest(fileData, 200, "OK"); }
router.route().handler(ctx -> { assertEquals(0, ctx.getBody().length()); assertEquals(1, ctx.fileUploads().size()); ctx.response().end(); });
assertEquals("Tommaso", attrs.get("attr2")); MultiMap params = rc.request().params(); assertEquals(0, rc.fileUploads().size()); assertNotNull(params); assertEquals(2, params.size());
assertEquals("Tommaso", attrs.get("attr2")); MultiMap params = rc.request().params(); assertEquals(0, rc.fileUploads().size()); if (mergeAttributes) { assertNotNull(params);
@Test public void testFileUploadFileRemovalIfAlreadyRemoved() throws Exception { testFileUploadFileRemoval(rc -> { vertx.fileSystem().deleteBlocking(rc.fileUploads().iterator().next().uploadedFileName()); rc.response().end(); }, true, 200, "OK"); }
@Override public void handle(RoutingContext event) { StandarRequestController.controllerProcessed = true; StandarRequestController.attrs = event.request().formAttributes(); StandarRequestController.params = event.request().params(); StandarRequestController.fileUploads = event.fileUploads(); StandarRequestController.bodyBuffer = event.getBody(); event.response().end(); }