windows8 app metro如何实现文件上传

hanqingyu 2012-09-13 05:31:32
using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = System.Net.DecompressionMethods.GZip |
System.Net.DecompressionMethods.Deflate,MaxRequestContentBufferSize=int.MaxValue }))
{
HttpResponseMessage res;
if (App._StorageFile != null)
{
StorageFile _storageFile = App._StorageFile;
string fileName = _storageFile.Name;


IRandomAccessStream readStream = await _storageFile.OpenAsync(FileAccessMode.Read);
Stream stream = readStream.AsStreamForRead();

MultipartFormDataContent form = new MultipartFormDataContent();

StreamContent streamContent = new StreamContent(stream, (int)readStream.Size);
streamContent.Headers.ContentType = new MediaTypeHeaderValue(FileOperate.GetContentType(fileName));
streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
streamContent.Headers.ContentDisposition.Name = "file";
streamContent.Headers.ContentDisposition.FileName = fileName;
streamContent.Headers.ContentLength = (long)readStream.Size;
form.Add(streamContent);

HttpRequestMessage requestMsg = new HttpRequestMessage();
requestMsg.Content = streamContent;
requestMsg.Content.Headers.ContentType = new MediaTypeHeaderValue("multipart/form-data");
requestMsg.Method = new HttpMethod("POST");
requestMsg.RequestUri = new Uri(api);
res = await client.SendAsync(requestMsg);//以异步操作将Get请求发送给指定URI

}
else
{
res = await client.GetAsync(api);//以异步操作将Get请求发送给指定URI
}

服务器端获取文件代码:
if (System.Web.HttpContext.Current.Request.Files.Count > 0)
{
}
客户端提交的参数都可以正常获取,唯独System.Web.HttpContext.Current.Request.Files.Count的值总是为0,不知为什么,请大牛指教,万分感谢!
...全文
76 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧