我已创建包含注册步骤的UWP,并且在注册步骤中我希望用户上传图片,我希望当用户上传时它会自动保存在资源文件夹中我想知道2件事
如何访问图片(可能来自相机胶卷或拍照)
如何将用户上传的图片保存到资产文件夹
谢谢
答案 0 :(得分:1)
让用户从他的照片库中选择它:
var picker = new FileOpenPicker
{
SuggestedStartLocation = PickerLocationId.PicturesLibrary,
FileTypeFilter = {".jpg", ".jpeg", ".png", ".gif"}
};
var file = await picker.PickSingleFileAsync();
拍照:
var capture = new CameraCaptureUI
{
PhotoSettings =
{
Format = CameraCaptureUIPhotoFormat.Jpeg
}
};
var file = await capture.CaptureFileAsync(CameraCaptureUIMode.Photo);
在这两种情况下,结果都是IStorageFile
。
我不太确定,你的意思是“资产文件夹”。项目中的Assets
文件夹是应用程序的一部分,仅包含随原始应用程序包一起分发的文件。你无法在那里保存其他文件。
如果您想在本地保存文件,可以使用application storage folders之一,例如LocalFolder
:
await file.CopyAsync(ApplicationData.Current.LocalFolder, "profile.jpg");
如果您想将其上传到服务器并让它可以全局访问所有用户,那么您当然需要一些服务器端代码,例如:将图片发布到的上传页面:
var uri = new Uri("http://my.server.com/upload");
var uploader = new BackgroundUploader();
var upload = uploader.CreateUpload(uri, file);
await upload.StartAsync();
然后,您可以将文件保存在服务器上的某个位置,并使其可供应用程序访问。查看the official sample以查看文件上传的有效实施。