windows8 app metro如何实现文件上传
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,不知为什么,请大牛指教,万分感谢!