@Override public InputStream getInputStream() throws IOException { return new FileInputStream(fileUpload.uploadedFileName()); }
@Override public void write(String fileName) throws IOException { FileUtils.copyFile(new File(fileUpload.uploadedFileName()), new File(fileName)); } }
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"); }
/** * @return the actual temporary file name on the server where the file was uploaded to. */ public String uploadedFileName() { String ret = delegate.uploadedFileName(); return ret; }
/** * @return the actual temporary file name on the server where the file was uploaded to. */ public String uploadedFileName() { String ret = delegate.uploadedFileName(); return ret; }
@Override public InputStream getInputStream() throws IOException { return new FileInputStream(fileUpload.uploadedFileName()); }
@Override public void write(String fileName) throws IOException { FileUtils.copyFile(new File(fileUpload.uploadedFileName()), new File(fileName)); } }
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 String handleOneFile(FileSystem fs, FileUpload upload) { String uploadedFile = upload.uploadedFileName(); String[] newDestination = examineNewDestination(fs, upload); fs.moveBlocking(uploadedFile, newDestination[0]); LOGGER.info(String.format(MOVE_MESSAGE, uploadedFile, newDestination[0])); return newDestination[1]; }
public UploadedFileImpl(Vertx vertx, HttpServerRequest req, FileUpload fu) { this.fu = fu; this.req = req; this.vertx = vertx; this.originalName = fu.fileName(); this.fileName = fu.uploadedFileName(); this.contentType = fu.contentType(); this.size = fu.size(); }
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()); } }); } }); } } } }
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() { 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 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()); } }
@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 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(); }
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); }