Comment définir le chemin d'accès à “chemin de contexte” pour le téléchargement des fichiers à l'aide d'Apache Commune fileupload?
Je suis en utilisant Apache commune fileupload bibliothèque avec Netbeans 6.8 + Glassfish.Je suis en train de changer le chemin de téléchargement à être dans le contexte actuel chemin de la servlet , quelque chose comme ceci:
WEB-INF/upload
j'ai donc écrit :
File uploadedFile = new File("WEB-INF/upload/"+fileName);
session.setAttribute("path",uploadedFile.getAbsolutePath());
item.write(uploadedFile);
mais j'ai remarqué que la bibliothèque enregistre les fichiers téléchargés dans glassfish dossier , voici ce que j'obtiens lorsque j'imprime le chemin d'accès absolu du fichier à télécharger :
C:\Program Files\sges-v3\glassfish\domains\domain1\WEB-INF\upload\xx.rar
Ma Question :
- Comment puis-je la force de la commune fileupload enregistrer le fichier téléchargé dans un chemin d'accès relatif à l'actuel chemin de la servlet , je n'ai pas besoin de spécifier le chemin d'accès complet ? est-ce possible ?
OriginalL'auteur Abdullah | 2010-05-25
Vous devez vous connecter pour publier un commentaire.
La
java.io.File
agit sur le disque local du système de fichiers et sait absolument rien sur le contexte, il est en cours d'exécution. Vous ne devriez pas s'attendre à trouver le "bon" emplacement lorsque vous passez une relative chemin web. Il deviendra par rapport à la répertoire de travail courant qui dépend de comment vous avez commencé à l'environnement. Vous ne voulez pas être à charge.Vous pouvez utiliser
ServletContext#getRealPath()
pour convertir un parent web chemin d'accès absolu du disque local chemin du système de fichiers.Cela dit, j'espère que vous êtes conscient que le dossier de déploiement n'est pas le bon endroit pour le téléchargement des fichiers qui sont censés être enregistrés de manière permanente. Tout sera perdu quand vous redéployez de la webapp. Voir aussi Comment écrire un fichier de ressources/images dossier de l'application?
OriginalL'auteur BalusC