代码之家  ›  专栏  ›  技术社区  ›  chabeee

在vaadin中上载图像时发生NoOutputStreamException

  •  0
  • chabeee  · 技术社区  · 10 年前

    正在尝试仅上载图像。问题是我不知道如何处理这种情况。

        @Override
        public OutputStream receiveUpload(String filename, String mimeType)  {
            FileOutputStream fos = null;
    
            if(mimeType.startsWith("image")) {
                picture = new Picture();
                picture.filename = filename;
                picture.mimeType = mimeType;
    
                picture = HibernateUtils.save(picture);
                product.pictures.add(picture);
                File dirs = new File(IMAGE_LOCATION);
                File file = new File(IMAGE_LOCATION + picture.id);
                if (!dirs.exists()) {
                    dirs.mkdirs();
                }
                try {
                    fos = new FileOutputStream(file);
                } catch (FileNotFoundException e) {
                    throw new RuntimeException(e);
                }
    
            } else {
                Notification.show("", Notification.Type.ERROR_MESSAGE);
            }
           return fos;
        }
    

    问题是 fos 变量将为 null 如果我尝试上载不同类型的文件 image 。问题是,我该如何处理?

    1 回复  |  直到 10 年前
        1
  •  2
  •   Krayo    10 年前

    我会这样做:

    ...
    } else {
        Notification.show("", Notification.Type.ERROR_MESSAGE);
        return new ByteArrayOutputStream();
    }
    ...