@Override public String getName() { return fileUpload.name(); }
@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); }
/** * @return the name of the upload as provided in the form submission */ public String name() { String ret = delegate.name(); return ret; }
/** * @return the name of the upload as provided in the form submission */ public String name() { String ret = delegate.name(); return ret; }
@Override public String getName() { return fileUpload.name(); }
@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 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"); }
private boolean isHandleUpload(FileUpload upload, String startKey) { LOGGER.info( "CHECKING: " + upload.uploadedFileName() + " | fileName: " + upload.fileName() + " | name: " + upload.name()); String fieldName = upload.name().toLowerCase(); if (upload.size() <= 0) { LOGGER.info("NOT HANDLED: upload size is zero: " + upload.uploadedFileName() + " | fileName" + upload.fileName() + " | " + upload.name()); return false; } if (!fieldName.startsWith(startKey)) { LOGGER.info("NOT HANDLED: fieldname does not start with:" + startKey + " | " + fieldName); return false; } return true; }
@Override public Object extract(String name, Parameter parameter, RoutingContext context) { FormParameter formParam = (FormParameter) parameter; if ("file".equals(formParam.getType())) { for (FileUpload file : context.fileUploads()) { if (file.name().equals(name)) { return file.uploadedFileName(); } } if(formParam.getRequired()) throw new IllegalArgumentException("Missing required parameter: " + name); return null; } else return this.extract(name, parameter, context.request().formAttributes()); } }
private void handleFileUploads(String entityName, RoutingContext context, Map<String, String> params) { String startKey = entityName.toLowerCase() + "."; Set<FileUpload> fileUploads = context.fileUploads(); FileSystem fs = getPersistenceController().getVertx().fileSystem(); LOGGER.info("Number of fileuploads: " + fileUploads.size()); for (FileUpload upload : fileUploads) { if (isHandleUpload(upload, startKey)) { try { String fieldName = upload.name().toLowerCase(); LOGGER.info("uploaded file detected for field name " + fieldName + ", fileName: " + upload.fileName()); String relativePath = handleOneFile(fs, upload); String pureKey = fieldName.substring(startKey.length()); params.put(pureKey, relativePath); } catch (Exception e) { context.fail(e); } } } }
@Override public void handle(RoutingContext context) { LOGGER.info("LOGGING REQUEST FOR " + context.request().path()); MultiMap headers = context.request().headers(); LOGGER.info("HEADERS: " + headers.size()); headers.entries().forEach(entry -> LOGGER.info(" " + entry.getKey() + ": " + entry.getValue())); MultiMap params = context.request().params(); LOGGER.info("PARAMETER: " + params.size()); params.entries().forEach(entry -> LOGGER.info(" " + entry.getKey() + ": " + entry.getValue())); MultiMap formAttributes = context.request().formAttributes(); LOGGER.info("FORM_ATTRIBUTES: " + formAttributes.size()); formAttributes.entries().forEach(entry -> LOGGER.info(" " + entry.getKey() + ": " + entry.getValue())); Set<FileUpload> fileUploads = context.fileUploads(); LOGGER.info("FILE UPLOADS: " + fileUploads.size()); fileUploads.forEach(fu -> LOGGER.info(" NAME: " + fu.name() + " | FILENAME: " + fu.fileName() + " | UPLOADED: " + fu.uploadedFileName() + " | SIZE: " + fu.size())); LOGGER.info("USER: " + context.user()); context.next(); }
if (!"file".equals(upload.name())) { removeFiles(new File(upload.uploadedFileName())); continue;
private void checkFileUpload(TestContext context, int count, String fileName, String fieldName, String contentType, String uploadsDir, Buffer fileData) { Set<FileUpload> fileUploads = StandarRequestController.fileUploads; context.assertNotNull(fileUploads); context.assertEquals(1, fileUploads.size()); FileUpload upload = fileUploads.iterator().next(); context.assertEquals(fieldName, upload.name()); context.assertEquals(fileName, upload.fileName()); context.assertEquals(contentType, upload.contentType()); context.assertEquals("binary", upload.contentTransferEncoding()); context.assertEquals(fileData.length(), (int) upload.size()); String uploadedFileName = upload.uploadedFileName(); context.assertTrue(uploadedFileName.startsWith(uploadsDir + File.separator)); Buffer uploaded = vertx.fileSystem().readFileBlocking(uploadedFileName); context.assertEquals(fileData, uploaded); }
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"); }