1

J'essaie de télécharger des fichiers sur des sites google et j'obtiens le flux en utilisant le téléchargement de fichiers apache commons. je reçois le flux d'entrée comme sousTélécharger un fichier en utilisant inputstream dans GAE java

InputStream is = fileItem.openStream(); 

Comment puis-je convertir ce flux d'entrée dans l'objet de fichier afin que ci-dessous appel réussit et je suis en mesure de régler le MediaFileSource au-dessus de fichier converti.

AttachmentEntry newAttachment = new AttachmentEntry(); 
newAttachment.setMediaSource(new MediaFileSource(file, fileMimeType)); 

Répondre

1

Vous pouvez utiliser MediaStreamSource au lieu de MediaFileSource.

+0

Thanx @BalusC, tout fonctionne correctement jusqu'à ce que je reçoive cette exception de service qui indique "Non autorisé à écrire dans ce flux" – dhaval

+0

com.google.gdata.util.ServiceForbiddenException: OK Non autorisé à écrire à ce flux – dhaval

1

Vous avez pas accès en écriture à un système de fichiers sur AppEngine et vous êtes censé garder vos données datastore. Cependant, gaefs project vous donne un système de fichiers virtuel et, à ma connaissance, prend en charge le téléchargement de fichiers.

+0

Je préférerais télécharger directement à partir de l'objet stream, est-il possible de personnaliser le MediaFileSource de manière à ce qu'il prenne l'objet * stream – dhaval

+0

Avez-vous regardé le code du servlet gaefs? Il lit d'un flux. Vous pouvez également lire les documents App Engine: http://code.google.com/appengine/kb/java.html#fileforms – Dmitry

+0

+1 pour le lien vers une ressource utile. –