2010-07-02 4 views
1

Je souhaite télécharger l'image vers le serveur IIS à l'aide du service Web C#. Je l'ai écrit la méthode web pour cela comme suit:Téléchargement d'images à partir de l'application android sur le serveur à l'aide du service Web C#

[WebMethod] 
public string UploadFile(byte[] f, string fileName) 
{ 
    try 
    { 
     MemoryStream ms = new MemoryStream(f); 

     FileStream fs = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath 
     ("~/TransientStorage/") +fileName, FileMode.Create); 

     ms.WriteTo(fs); 

     ms.Close(); 
     fs.Close(); 
     fs.Dispose(); 

     return "OK"; 
    } 
    catch (Exception ex) 
    { 
     // return the error message if the operation fails 
     return ex.Message.ToString(); 
    } 
} 

Voici la méthode Web prend argument octet [] .J'ai convertir l'image sdcard octet [] mais quand je passe comme une URL paramete il ne fonctionne pas .J'ai aussi essayé en convertissant le tableau byte [] en base64 strig mais ça ne marche toujours pas. Quelqu'un peut-il me dire comment télécharger une image sur un serveur IIS en utilisant le service Web C#?

Répondre

4

Vous devrez le POST sur le serveur, en définissant le type de contenu et en incluant le tableau d'octets comme corps du message. Voir here pour un exemple de le faire à partir de C# et here pour un exemple pour Android.

+0

Merci beaucoup ... Andy le code fonctionne très bien, mais après le téléchargement je ne peux pas trouver le dossier de destination des images téléchargées. Je cours PHP sur le serveur IIS. – Sujit

+0

Heureux que cela a aidé. Le fichier téléchargé doit être dans le dossier de l'application de service Web sous le dossier TransientStorage? Le dossier existe-t-il? Recevez-vous des erreurs renvoyées? Êtes-vous capable de déboguer le service Web? Je suis aussi un peu confus où php vient dans cette configuration? –

+0

Merci pour le lien son très utile. J'ai compris comment l'octet [] sera envoyé, où suis-je en train d'envoyer le nom de fichier ?? et pourquoi faisons-nous ce morceau de code outputStream.writeBytes (twoHyphens + boundary + lineEnd); outputStream.writeBytes ("Content-Disposition: données-formulaire; nom =" uploadfile "; filename =" "+ pathToOurFile +" \ "" + lineEnd); outputStream.writeBytes (lineEnd); si j'ai du contenu avec mon image quelle est la meilleure façon de l'envoyer? –

Questions connexes