2010-11-11 6 views
1

est possible de télécharger un fichier en utilisant FileUpload Control et WebMethod? Je souhaite éviter le UpdatePanel et les ScriptManagers..NET WebMethod FileUpload

Comment puis-je le faire? Quel type de paramètre serait la méthode Web? Y a-t-il un exemple?

Merci!

+0

Etes-vous sûr que ce n'est pas assez bon: http://asp.net-tutorials.com/controls/file-upload-control/ –

Répondre

2

Je ne pouvais pas trouver la solution que vous avez demandé en utilisant WebMethod donc je viens avec une solution alternative qui utilise HTTPHandler ou mieux connu comme ASPX contrôle/page.

Pour obtenir ce que vous vouliez, j'utilise Valums File Upload, il y a beaucoup d'alternatives là-bas mais c'est celui que j'ai trouvé très approprié pour mon cas. Vous pouvez trouver plus d'informations, documentation et télécharger le code javascript ici:

http://valums.com/ajax-upload/

Le code également donner l'exemple de la façon de traiter la demande de côté serveur cependant, il ne comprend pas exemple de code dans .net alors j'ai trouvé ce projet.

http://www.codeproject.com/KB/aspnet/AspNetHandlerAjaxUpload.aspx

qui utilisent Valums File Upload et gérer la demande de téléchargement de fichier en utilisant .Net C# côté serveur.

Pour résumer, voici comment vous utilisez les Valums File Upload sur côté client:

  1. Faire référence que le CSS et Javascript fichier téléchargé à partir Valum File Upload site .
  2. Utilisez ce code pour créer le contrôle de téléchargement de fichiers

    <div id="divFileUpload"> 
        <noscript> 
         <p> 
          Please enable JavaScript to use file uploader.</p> 
        </noscript> 
    </div> 
    
  3. Utilisez ce code javascript pour configurer le contrôle de téléchargement de fichiers

    $(function() { 
        var uploader = new qq.FileUploader({ 
         element: document.getElementById('divFileUpload'), 
         action: 'FileUpload.ashx', 
         onComplete: function (id, fileName, responseJSON) { 
          if (responseJSON.Success) { 
           alert("Success"); 
          } 
         } 
        }); 
    }); 
    

Du côté du serveur :

  1. Créer ASHX fichier pour gérer la demande du côté client.
  2. Exemple de code

    public class FileUpload : IHttpHandler 
    { 
        public void ProcessRequest(HttpContext context) 
        { 
         //Save the file here 
    
         //Return Json value to client 
         context.Response.Write("{ \"Success\": true }"); 
        } 
    } 
    
  3. Très important, type de retour JSON au client.

Pour plus de détails sur la gestion de la demande du côté client, veuillez vous reporter à l'URL ci-dessus.

Tous les crédits vont à l'Andrew Valums pour les Valums File Upload et Syed BASHAR pour le code du serveur .Net en utilisant Fichier Valums Upload.

+0

Peut-être pas ce qu'il cherchait, mais c'était exactement ce dont j'avais besoin. Merci! – mikeschuld

+0

Cela peut aider, je pense. Mais encore ce n'est pas passer à webmethod. Je pense qu'en utilisant xhr je peux convertir un fichier en utf-8 et l'envoyer à un webmethod. Est-il possible de le faire? –