将图像从 Android 上传到 WCF C#/.网

Posted

技术标签:

【中文标题】将图像从 Android 上传到 WCF C#/.网【英文标题】:Upload image from Android to WCF C # /. NET 【发布时间】:2013-06-30 01:58:04 【问题描述】:

早上好,我需要将存储卡中的图像从单位发送到我在 wcf / C# 中完成的 web 服务,不太了解 C# 是公司的要求,我什至可以为 WCF 发送 Strem,但在转换和转换为位图或其他东西时遇到问题。

按照我在 wcf 中制作帖子图像的 android 代码:

/**
 * 
 * Método responsável por enviar imagem para o servidor
 *
 * @param String caminho
 * @author Douglas Costa <douglas.cst90@gmail.com.br>
 * @since 01/07/2013 18:27:49
 * @version 1.0
 */
public static void upload(String caminho)

    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://192.168.0.205:8070/Service/uploadImagem");
    ResponseHandler<String> responseHandler = new BasicResponseHandler();

    File file = new File(caminho);
    //This is the new shit to deal with MIME
    MultipartEntity entity = new MultipartEntity();
    entity.addPart("image", new FileBody(file, "image/jpeg"));
    httppost.setEntity(entity);

    try 
        String responseString = httpclient.execute(httppost, responseHandler);
     catch (ClientProtocolException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
     catch (IOException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
     catch (Exception e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    

这是我在 C# 中从图像接收流的 WCF 方法的帖子:

/// Método POST que recebe um Stream do Android
    /// </summary>
    /// <param name="imagem"></param>
    /// <returns></returns>
    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "uploadImagem")]
    public Bitmap uploadImagem(Stream imagem)
    

        try
        
            byte[] buffer = new byte[16 * 1024];
            using (MemoryStream ms = new MemoryStream())
            
                int read;
                while ((read = imagem.Read(buffer, 0, buffer.Length)) > 0)
                
                    ms.Write(buffer, 0, read);
                
                buffer = ms.ToArray();
            

            using (MemoryStream mStream = new MemoryStream())
            
                mStream.Write(buffer, 0, buffer.Length);

                Bitmap bm = new Bitmap(mStream);
                return bm;
            
        
        catch (Exception)
        
            return null;
        
    

已经尝试了几种转换流的方法,也不知道我发送的方式是否正确,但是我有一个类似的方法可以工作,但是在一个JAVA webservice中。

感谢有人可以帮助我使用 C#。

抱歉有英文错误,谢谢。

【问题讨论】:

【参考方案1】:

遵循这 3 条是否对您有帮助..

http://www.jarredcapellman.com/2012/2/8/getting-a-picture-from-android-to-a-wcf-service POSTing image from Android to WCF Rest Service Android upload image to WCF service "Parameter is not valid."

【讨论】:

以上是关于将图像从 Android 上传到 WCF C#/.网的主要内容,如果未能解决你的问题,请参考以下文章

从 Xamarin Android 应用程序崩溃将大文件上传到 WCF

如何将图像从 android 上传到 Cloudinary?

如何在 C# 中正确使用 WCF REST API 上的 Stream 将文件(图像/视频/等)上传到服务器?

wcf 服务调用从角度上传图像

从 Silverlight 到 WCF 的图像文件

Android将文件作为ByteArray上传到WCF REST服务