2015-05-03 94 views
0

我想上传从图库或活动图片(相机捕获任务)的图像与一些参数; x =“某个字符串”,y =“某个字符串”,z =“某个整数”,uploadimage =文件标签的名称。图像上传到服务器在Windows Phone8应用程序

任何人都可以帮我吗?

+1

你想在哪里上传图片..?你有任何webService准备好,你只是想要一个WebService调用的工作实现上传图像文件到您的服务器..?让你的问题更清楚.. –

回答

0

为WP8上传图片很痛苦。我所遵循的许多例子都过时了,这花了我数天的时间来研究,最后得到了一个工作。有几种上传方式:

1)将图像转换为字符串,然后可以通过HTTP请求发送图像转换后的字符串。我对Android使用了这种方法,但还没有尝试过WP。 2)通过FTP上传图像,通过HTTP上传文本数据。

0

您有3种选择可以将任何File上传到服务器。

  • 转换文件到Stream - 推荐方式
  • 转换文件到ByteArray
  • 转换文件到String

之后,你可以使用HttpClient package做出POST request到服务器。以下是通过将FileUpload转换为Stream来演示FileUpload的代码。

代码:

public async void methodToUploadFile() 
    { 
     StorageFile file = await StorageFile.GetFileFromPathAsync("Assets/MyImage.png"); 
     // var fileBytes = await GetBytesAsync(file); 

     HttpClient client = new HttpClient(); 
     // give the server URI here 
     Uri requestUri = new Uri("Full Server URI", UriKind.Absolute); 

     MultipartFormDataContent formdata = new MultipartFormDataContent(); 
     formdata.Add(new StringContent("some string"), "x"); 
     formdata.Add(new StringContent("some string"), "y"); 
     formdata.Add(new StringContent("some integer"), "z"); 

     formdata.Add(new StreamContent(await file.OpenStreamForReadAsync()), "file", "MyImage.png"); 
     // formdata.Add(new ByteArrayContent(fileBytes), "file", "MyImage.png"); 

     // Make a POST request here 
     var res = await client.PostAsync(requestUri, formdata); 
    } 

希望这有助于..!

+0

谢谢Keval。你的代码帮了我很多。我做了很少的修改。 – anonyms

+0

我会尝试发布我的代码,这也会帮助他人。 – anonyms

相关问题