用.net上传文件

本文关键字:文件 net | 更新日期: 2023-09-27 18:05:30

现在我已经意识到我不能使用正常的.NET来编写我的Windows商店应用程序,我正试图通过.NET来处理Windows商店应用程序的混乱。我的最新发现是System.Net.WebClient类缺失,我需要用它来上传一个文件。如果有这个类,我就会这样做:

webClient.UploadFile("http://my.website/upload.php?a=" + someParam, "POST", filepath);

不幸的是,我不能在。net for windows store中这样做。我如何用。net实现类似的功能呢?

用.net上传文件

我尝试HttpClient类- http://msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx -它有Post方法,如果您查看这里的answerenter链接描述,它显示了如何为文件上传创建多部分数据。

首先需要获得对StorageFile的引用。使用FileOpenPicker是一种方法:

var filePicker = new FileOpenPicker();
filePicker.FileTypeFilter.Add(".txt");
var file = await filePicker.PickSingleFileAsync();

然后使用以下代码上传文件(我没有尝试过,因为我没有一个上传页面,但它应该工作):

using (var randomStream = (await file.OpenReadAsync()))
{
    using (var stream = randomStream.AsStream())
    {
        using (var content = new StreamContent(stream))
        {
            var httpClient = new HttpClient();
            await httpClient.PostAsync(uri, content);
        }
    }
}