@Override public String name() { return upload.name(); }
assertEquals("file", upload.name()); assertEquals("tmp-0.txt", upload.filename()); assertEquals("image/gif", upload.contentType());
/** * @return the name of the attribute */ public String name() { String ret = delegate.name(); return ret; }
/** * The field name from the form. * * @return the name of the input element from the form having uploaded the file. It can be {@literal null} if the * file was not uploaded from a form. */ @Override public String field() { return upload.name(); }
/** * @return the name of the attribute */ public String name() { String ret = delegate.name(); return ret; }
@Override public String name() { return upload.name(); }
assertEquals("file", upload.name()); assertEquals("tmp-0.txt", upload.filename()); assertEquals("image/gif", upload.contentType());
public YokeFileUpload(@NotNull final Vertx vertx, @NotNull final HttpServerFileUpload fileUpload, @NotNull String uploadDir) { this.fileSystem = vertx.fileSystem(); this.filename = fileUpload.filename(); this.name = fileUpload.name(); this.contentType = fileUpload.contentType(); this.contentTransferEncoding = fileUpload.contentTransferEncoding(); this.charset = fileUpload.charset(); this.size = fileUpload.size(); if (!uploadDir.endsWith(File.separator)) { uploadDir += File.separator; } this.path = uploadDir + UUID.randomUUID().toString(); }
@Override public void handle(final HttpServerFileUpload fileUpload) { if (request.files() == null) { request.setFiles(new HashMap<String, YokeFileUpload>()); } final YokeFileUpload upload = new YokeFileUpload(vertx(), fileUpload, uploadDir); // setup callbacks fileUpload.exceptionHandler(new Handler<Throwable>() { @Override public void handle(Throwable throwable) { next.handle(throwable); } }); // stream to the generated path fileUpload.streamToFileSystem(upload.path()); // store a reference in the request request.files().put(fileUpload.name(), upload); // set up a callback to remove the file from the file system when the request completes request.response().endHandler(new Handler<Void>() { @Override public void handle(Void event) { if (upload.isTransient()) { upload.delete(); } } }); } });
.error("Cannot read the uploaded item {} ({})", upload.name(), upload.filename(), event)) .endHandler(event -> delegate.close()) .handler(
private void testFileUploadFormMultipart(int size) throws Exception { Buffer content = Buffer.buffer(TestUtils.randomAlphaString(size)); vertx.fileSystem().writeFileBlocking(testFile.getPath(), content); server.requestHandler(req -> { req.setExpectMultipart(true); req.uploadHandler(upload -> { Buffer fileBuffer = Buffer.buffer(); assertEquals("file", upload.name()); assertEquals("test.txt", upload.filename()); assertEquals("text/plain", upload.contentType()); upload.handler(fileBuffer::appendBuffer); upload.endHandler(v -> assertEquals(content, fileBuffer)); }); req.endHandler(v -> { assertEquals("vert.x", req.getFormAttribute("toolkit")); assertEquals("jvm", req.getFormAttribute("runtime")); req.response().end(); }); }); startServer(); MultipartForm form = MultipartForm.create() .attribute("toolkit", "vert.x") .attribute("runtime", "jvm") .textFileUpload("file", testFile.getName(), testFile.getPath(), "text/plain"); HttpRequest<Buffer> builder = client.post("somepath"); builder.sendMultipartForm(form, onSuccess(resp -> complete())); await(); }