2009-12-29 4 views
2

J'ai un service de téléchargement de fichiers qui fonctionne bien.Transférer les détails de téléchargement de fichier vers un autre service distant

Est-il possible de soumettre un téléchargement de fichier à une méthode asp.net (comme les téléchargements normaux), mais de transmettre ensuite les détails du fichier de téléchargement au service distant. Par conséquent, en utilisant la méthode asp.net comme un proxy et pas la méthode de téléchargement réel?

L'enregistrement du fichier sera effectué sur le service distant.

Remarque J'utilise C# et .net 3.5

Cordialement

+1

Techniquement, c'est possible oui. Il doit y avoir plus de détails cependant. Comment les fichiers sont-ils téléchargés, comment l'autre service reçoit-il les données entrantes, etc. – GrayWizardx

+0

Qu'essayez-vous d'enregistrer? Cela vous permettra d'économiser du stockage, mais cela va manger votre bande passante ... Est-ce le but? – Nate

+0

J'utilise le contrôle de téléchargement de fichier de formulaire . Le service distant est un gestionnaire qui lit le Http.Context et récupère les données du fichier. – Theo

Répondre

2

Si vous utilisez une méthode ASP.NET, le fichier doit être téléchargé sur le serveur. Cependant, il ne doit pas être sauvegardé en utilisant la méthode "SaveAs" ou toute autre méthode. Vous pouvez accéder directement au fichier en tant que flux que vous pouvez transmettre à votre autre service si vous pouvez lui envoyer des flux.

L'idée est expliqué dans ce billet de blog (utilisation légèrement différente, mais même idée):
http://weblogs.asp.net/meligy/archive/2008/02/18/unit-test-friendly-file-upload-handling-in-n-tier-applications.aspx

Ainsi, si votre appel de service à distance peut être simplifiée comme méthode comme:

public void MyServiceMethod(Stream inputStream) { ........ } 

Vous pouvez passer le contenu du fichier à partir de la page sans l'enregistrer comme:

myService.MyServiceMethod(myFileUploadControl.PostedFile.InputStream); 
+0

Cool merci, mais il n'y aurait pas quelques problèmes de temps d'exécution de script et autres? Je ne fais que spéculer. – Theo

+0

Je l'ai seulement essayé dans la communication locale entre 2 couches dans le même domaine d'application, mais le point est: Je pense qu'il n'y a aucun autre moyen de transférer des données de fichier binaires entre les services. Vous pouvez utiliser la magie de la WCF pour gérer de tels défis s'ils se produisent dans vos tests. – Meligy

Questions connexes