Причина, по которой ваш код не работает,
uploadImage = ato.filter(uploadImage, null); //uploadImage == BufferedImage
Ваше конечное изображение пусто.
Вы должны создать новый BufferedImage, чтобы поместить масштабированную версию, как это:
BufferedImage dstImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
ato.filter(uploadImage, dstImage);
Затем сохраните dstImage (используя ImageIO.write).
Edit:
Более простой способ уменьшить изображение - просто нарисовать его в dstImage нужного размера:
int dstWidth = 100;
int dstHeight = 100;
InputStream imageStream = item.getInputStream();
BufferedImage srcImage = ImageIO.read(imageStream);
if (srcImage == null) { System.err.println("NO SOURCE IMAGE!"); }
BufferedImage dstImage = new BufferedImage(dstWidth, dstHeight,
BufferedImage.TYPE_INT_RGB);
dstImage.getGraphics().drawImage(
srcImage, 0, 0, dstWidth, dstHeight, null);
ImageIO.write(dstImage, "jpg", new File(path + ".jpg"));