Yes it's possible to drop a file with Selenium via a script injection. The script needs to create an <input> web element to receive the file sent by SendKeys. Then simulate the dragenter, dragover and drop events on the targeted element with the file set in the dataTransfer object.
This example drops an image from the file system on a drop area:
ChromeDriver driver = new ChromeDriver();
// locate the drop area
WebElement droparea = driver.findElement(By.cssSelector("#holder"));
// drop the file
DropFile(new File("C:\\Downloads\\image.png"), droparea, 0, 0);