begin process at 2012 05 28 07:12:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Temps d'upload d'un fichier posté


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Temps d'upload d'un fichier posté

mercredi 13 mai 2009 à 10:26:41 | Temps d'upload d'un fichier posté

Mo0g

Hello !

J'utilise actuellement ASP.net pour réaliser une petite appli de gestion de documents.
Je cherche à réaliser un joli uploader de fichier du client directement vers un serveur FTP.

Jusque là, j'ai réussi à tout faire fonctionner : le document est bien envoyé par le client et traité coté serveur pour être envoyé sur le serveur FTP.
Mais (forcément, il y a un mais ^^), je constate qu'une fois le formulaire posté, le navigateur du client reste bloqué le temps que l'intégralité du fichier soit envoyé !

J'utilise un plugin jQuery pour accéder au système de fichier et présenter une barre de progression lors de l'upload (excellent plugin nommé uploadify).
Comme dit plus haut, tout fonctionne mais le client vois sa barre de chargement à 100% une fois que l'intégralité du fichier est transferé ; mais à ce moment là, le fichier n'a même pas commencé son envoi au serveur FTP.

Mon objectif est donc de trouver une solution permettant (en gros) de faire un streaming du client vers le serveur.

Ai-je fais une erreur ?
Est-ce completement normal ?

Merci de m'avoir lu :)

Voici le code qui gère la réception du fichier puis son envoi au serveur FTP.
Je constate clairement le problème si je pose un breakpoint en première ligne : il semble que je ne puisse pas accéder à "context.Request.Files["Filedata"].FileName" si le fichier n'as pas été intégralement envoyé par le client (d'ou la lenteur !).

public partial class upload : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
           
            try
            {
                //HttpPostedFile file = context.Request.Files["Filedata"];

                string serverPath = "ftp://10.0.0.10/" + context.Request.Files["Filedata"].FileName;

                FtpWebRequest requestObj = FtpWebRequest.Create(serverPath) as FtpWebRequest;
                requestObj.Method = WebRequestMethods.Ftp.UploadFile;
                requestObj.Credentials = new NetworkCredential("login", "password");
               
                Stream outputStream = requestObj.GetRequestStream();
               
                // UPLOAD VERS LE FTP...
                    CopyStream(context.Request.Files["Filedata"].InputStream, outputStream);


                    context.Request.Files["file"].InputStream.Close();      

                outputStream.Flush();
                outputStream.Close();

                requestObj = null;

                context.Response.Write("1");               
            }
            catch (Exception x) {
               
            };           
        }

        public bool IsReusable
        {
            get { return false; }
        }

        private static string CopyStream(Stream inStream, Stream outStream)
        {
            try
            {
                byte[] buffer = new byte[1024];
                for (; ; )
                {
                    int numBytesRead = inStream.Read(buffer, 0, buffer.Length);
                    if (numBytesRead <= 0)
                        break;
                    outStream.Write(buffer, 0, numBytesRead);
                }
                inStream.Close();
                return "success";
            }
            catch (System.Exception ee)
            {
                return ee.Message;
            }
        }
    }


Cette discussion est classée dans : fichier, ftp, serveur, client, context


Répondre à ce message

Sujets en rapport avec ce message

Récupérer un fichier client sur le serveur [ par Rita ] 'DNS du poste du client const FilePath = "\\W982100\rep\"Set Fs=CreateObject("Scripting.FileSystemObject")Set FFile = Fso.GetFile (Filepath & "\cop.p Envoyer un fichier du client vers le serveur [ par bvb ] Hello,je voudrais trouver un code qui me permettrais de sauvegarder un fichier créé par le serveur sur le client.Il s'agit en fait de proposer la boît upload de fichier sur un serveur ftp dans une page en asp [ par tatiana_robi ] Je souhaiterai mettre un fichier sur le serveur ftp dans une page asp mais je ne vois pas quelle fonction je pourrai utilisémerci de me repondre c'est Utiliser sur le serveur web un fichier situé sur le poste client [ par jld ] Environnement : IIS, ASP2, SQLServerLes utilisateurs d'un site intranet doivent pouvoir à partir de leur poste client, alimenter une base de donnée pa Transfert de fichier vers le serveur [ par ganbalfro ] Je souhaite copier le fichier fic qui se trouve sur mon pc dons c : vers le serveur. Si je passe par une input box type=file ça marche. NewFileName demande de fichier du client au serveur [ par Pepin21 ] Bonjour,voilà mon problème : quand mon utilisateur clique sur un bouton "imprimer", un fichier pdf se crée dans le Local Settings\Temp de mon serveur. Différence de présentation client-serveur-debug [ par v.massip ] Bonjour à tous,Je viens de créer un site en asp.net contenant du javascript dans un fichier script à part et une mise en page CSS dans 3 fichiers sépa enregistrer fichier sur serveur ftp [ par chandler8692 ] Bonjour tout le monde. Aujourd'hui, je souhaite créer un fichier xml dans mon code puis l'enregistrer sur mon serveur ftp. C'est cette seconde partie upload d'un fichier coté client, vous savez faire??? [ par foofur ] Bonjour, CE QUE JE VEUX FAIRE :Je dois importer un fichier chez le client sur le serveur.CE QUE J'AI ECRIS :<br 2.0 telechargement de fichier vers le client [ par marc_dd ] Bonsoir à tous, je suis actuellement en cours de développement d'un site asp.net, dans ce site à un certain moment je dois téléchargher un fichier du


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales