UWP 上传图片

Fork Me On Github
zodream 编程技术 C# 2020年04月

场景

需要一个修改头像的功能,

  1. 第一种,直接选择文件上传即可
  2. 第二种,选择文件后进行裁剪再上传

选择图片文件

这是第一种,直接选择文件进行上传

c#
             
using Windows.Web.Http;

var filePicker = new FileOpenPicker
{
    ViewMode = PickerViewMode.Thumbnail,
    SuggestedStartLocation = PickerLocationId.PicturesLibrary,
    FileTypeFilter =
    {
        ".png", ".jpg", ".jpeg"
    }
};
var file = await filePicker.PickSingleFileAsync();
var stream  = new HttpStreamContent(await file.OpenReadAsync());
12345678910111213

开始上传

这里是进行具体上传的地方

c#
       
using Windows.Web.Http;

var httpClient = new HttpClient();
var form = new HttpMultipartFormDataContent();
form.Add(stream, "file", "avatar.png");
await httpClient.PostAsync(new Uri(), form);
1234567

file 为POST表单中文件的键

avatar.png 为文件名

注意:

  1. 使用了 HttpMultipartFormDataContent 就不要设置 请求头中 Content-Type,不然服务器端无法解析表单内容

处理图片并进行上传

这是使用 Microsoft.Toolkit.Uwp.UI.Controls 里面的裁剪控件 ImageCropper

c#
        
using Microsoft.Toolkit.Uwp.UI.Controls;
using Windows.Web.Http;
using Windows.Storage.Streams;

var inputStream = new InMemoryRandomAccessStream();
await ImageCropper.SaveAsync(stream, BitmapFileFormat.Png);

var stream = new HttpStreamContent(inputStream);
12345678
点击查看全文
标签: uwp
0 290 0
uwp win2d 使用
2021年05月
win2d使用
UWP Custom Control自定义控件开发
uwp应用获取应用内的文件内容
UWP 使用语言包
2020年04月