2011-11-14 3 views
1

Dans mon application Web Java Spring, je crée un fichier image. Ce fichier est un nom temporaire et plus tard je tente de le renommer en utilisant:Java ne trouve pas de fichier existant sur le serveur

public void rename(String productFilename){ 

    String newProductFilename = "newfile.jpg"; 
    File input = new File(imageDir + "/products/" + productFilename); 
    File output = new File(imageDir + "/products/" + newProductFilename); 
    Boolean checkRename = input.renameTo(output); 
} 

Pour créer le fichier temporaire, j'utilise:

public String generate(){ 
    String productFilename = "filename.jpg"; 
    ImageIO.write(out, imageFileType, new File(imageDir + "/products/" + productFilename)); 
    return productFilename; 
} 

la valeur de imageDir est:/var/images

Tout au long de la classe, la variable imageDir est définie sur un chemin absolu. La chose étrange est que tout cela fonctionne très bien sur Windows, mais en cours d'exécution sur Linux, je reçois un FileNotFoundException.
Je suis sûr à 100% que le fichier existe. Toute idée sur ce que je fais mal?

+1

Pouvez-vous également coller l'exception que vous obtenez? –

+1

Est-ce que 'newFilename' est différent de 'productFilename'? Vous semblez utiliser différentes variables pour la création et le renommage. Puisque cela fonctionne sur Windows, avez-vous un problème? Je voudrais enregistrer les noms de fichiers utilisés dans l'écriture du fichier temporaire, et ceux utilisés dans le changement de nom. –

+0

S'il vous plaît voir ma modification. La fonction generate retourne le nom de fichier utilisé par la fonction de renommage. – jorgen

Répondre

1

J'ai trouvé la solution. Les noms de fichiers devaient être rognés pour être reconnus sous Linux. Cela, cependant, a fonctionné sans couper dans Windows.

Questions connexes