0

アップロードした画像のサイズを小さいバージョンとサムネイルバージョンに変更したい。したがって、私は素晴らしいモジュールS3を使用しています。これは正常に機能しており、すべての画像がs3にアップロードされます。しかし、数回アップロードした後、サイズ変更された画像もディスクに保存され、削除されないことに気付きました。

私のコード:

public static Picture save(File file, Recipe recipe){

    File picture = new File(UUID.randomUUID().toString());
    //Resize main picture
    Images.resize(file, picture, 600, 600, true);

    File thumbNail = new File(UUID.randomUUID().toString());
    //Resize thumbnail
    Images.resize(file, thumbNail, 260, 190, true);

    Picture pic = new Picture();
    pic.pictureFileName = file.getName();
    pic.picture = new S3Blob();

    pic.thumbPictureFileName = file.getName();
    pic.thumbPicture = new S3Blob();

    pic.recipe = recipe;
    try{
        pic.picture.set(new FileInputStream(picture), MimeTypes.getContentType(file.getName()));
        pic.thumbPicture.set(new FileInputStream(thumbNail), MimeTypes.getContentType(file.getName()));
        pic.save();

    }catch(FileNotFoundException e){
        Logger.error(e, "FileNotFound");
    }

    return pic;
}

アップロード後にファイルを削除するにはどうすればよいですか?通常、ストリームが終了するのを待ちますが、いつ終了するかわからないため、ファイルを削除できません。

4

1 に答える 1

0

サミュエルがコメントしたように、正しくない非同期動作を期待していました。

写真のサイズを変更してアップロードした後、 file.delete() で削除するだけです。

于 2012-07-19T08:58:08.300 に答える