Comment puis-je Télécharger le Fichier (de grande taille) à l'aide de FileStream dans le Service web dans IIS(Internt Services d'Information)
Je suis à l'aide de C# pour créer un service de téléchargement de fichiers.
J'ai créé trois méthodes:
upload_start(string filename)
upload_continue(string filename, byte[] buffer)
upload_end(string filename)
Il fonctionne, mais je ne veux pas gérer 3 fonctions à partir du programme client. Comment puis-je ouvrir un FileStream sur le programme client, et laissez-le de côté de serveur de terminer le téléchargement du fichier?
- Vous voulez commencer à avoir le fichier doit être téléchargé à partir du client, le serveur peut prendre plus de lire le fichier à partir de l'ordinateur client? Je suis en train d'essayer d'obtenir des précisions sur ce que vous essayez de faire.
- Oui, je veux serveur de prendre soin de tout.
Vous devez vous connecter pour publier un commentaire.
L'approche la plus simple serait probablement de créer un service REST, soit avec wcf ou de faire quelque chose de similaire avec asp.net mais il vous faudra alors il suffit de faire une
POST
opération, et le serveur peut faire le travail.Ici est une approche:
http://debugmode.net/2011/05/01/uploading-file-to-server-from-asp-net-client-using-wcf-rest-service/
Cela permettrait d'avoir une interface plus simple pour vous.
Je ne pense pas que vous pouvez le FileStream n'est pas Sérialisable. Pourquoi ne pas passer le service le nom du fichier (comme vous l'êtes déjà) et le service ouvrir le fichier et de le traiter.
Pour télécharger un fichier volumineux dans WebServices(pas de Windows Cominication de la Fondation de la WCF) c'est la voie à suivre:
Dans le côté serveur de fichiers Web.Config ajouter ce code xml et modifier la valeur de maxRequestLength en fonction de la taille maximale de téléchargement, par defoult maxRequestLength de 4MB, dans cet exemple 8192=MO
Ajouter une autre fonction publique à côté serveur, cette fonction a reçu un byte[] contient le fichier, le nom de fichier et un chemin d'accès où vous l'habitude d'enregistrer le fichier dans le serveur.
Dans le côté client d'ajouter ce code à envoyer le fichier: