bonjour,
Je voudrais convertir un "java.io.File" en "org.apache.struts.upload.FormFile".
ya til un moyen?
merci.
Version imprimable
bonjour,
Je voudrais convertir un "java.io.File" en "org.apache.struts.upload.FormFile".
ya til un moyen?
merci.
Dans quel but ? Parce que généralement on fait plutôt le contraire ^^"
En fait j'utilse l'api common Controls, et je construit un arbre
avec un treelist.
Dans ce treelist, j'ai un <ctrl:file> qui n'accepte pas de FormFile mais des File.
Il n'ont pas encore implementé de classes pour regler ce probleme.
Voila le pourquoi du comment.
Et pourquoi as-tu besoin d'un FormFile ? Parce que je n'ai pas l'impression qu'il soit possible de construire un FormFile :/
parceque j'au besoin du nom, du type,des donnees(byte)... en faite de toutes les proprietes d'un formFile pour les rentrer dans la base alors que fans un File je n'ai que le path et d'autres infos qui ne m'interesse pas
alors voila les méthodes de FormFile :
- byte[] getFileData() que tu peux retrouvé facilement avec un File grace a un FileInputStream (par exemple)
- java.lang.String getFileName() : méthode de File : getName()
- int getFileSize() : pareil, methode de File : length()
voila, c'est a peut pres tout ...
Euh si tu n'as pas stocké l'url de ton fichier en base ca va etre dur de recuperer ton fichier d'origine. PAr contre avec le getFileData tu peux recuperer le flux de ton fichier et donc en recréer un temporaire pourquoi pas.
pour le length() et getName(),mais je n'ai pas bien compris pour le getFileData() avec FileInputStream.plus de detail serait le bienvenue.
Merci.
Ben si tu as un File, pour recuperer un tableau de byte tu fais :
Code:
1
2
3
4 File f; FileInputStream stream = new FileInputStream(f); byte[] data = new byte[f.length] stream.read(data);
Merci cronycs, je vais etre chiant mais j'ai oublié le contentType() et je ne le trouve pas.
un dernier effort stp.
je vais profiter du sujet pour poser aussi une petite question :
je upload un fichier, donc je recupere un objet de type FormFile et je voudrais l'afficher directement,
Est ce que je peu passer directement l'objet de type FormFile ou dois je le convertir en File?
Ensuite, une fois dans la JSP (je le passe par les parametre de session), pour l'afficher, comment je dois faire?
si tu utilise struts : <html:file> pour un FormFile
Citation:
Envoyé par CPI_en_mousse
Ca depend de ce que tu veux afficher ? Est-ce que tu sauvegarde le path du fichier dans un base de données ?
Sinon pour le Content type je sais pas :?
j'enregistre tous le fichier dans la database
ben si tu recupere un FormFile, tu le convertis en File.c'est tout.
quelle nom elle as la methode?
en gros c'est comme ca pour recupérer un File a partir de ton FormFileCode:
1
2
3
4 File file = new File(PATH OU TU VEUX ENREGISTRER TON FICHIER); FileOutputStream(file)); FileOutputStream fos = new FileOutputStream(file); fos.write(f.getFileData());
oui mais le fichier, je ne veux pas l'enregistrer sur le serveur mais je veux le conserver tout entier dans ma database
Comment faire alors?
Euuuuh .. ben apres je sais pas trop, je me suis jamais penché sur le sujet, il doit bien y avoir des bases de données qui gèrent l'enregistrement de fichier, je doute que Mysql le fasse par contre. (La je pense que google te sera un meilleur ami que moi :p)
sisi, on peu enregistrer des fhichier avec MySql. il faut utiliser le type blob