使用Xamarin Filepicker插件上传文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Xamarin Filepicker插件上传文件相关的知识,希望对你有一定的参考价值。
我正在尝试使用nuget包filepicker上传pdf文件。 能够获取文件名和文件本地路径。但是当我试图将文件转换为字节数组时,我收到一个错误。
这是我的pcl代码 -
public interface ILoclFileProvider
{
byte[] GetFileBytes(string path);
}
public static class FileUtility
{
public static ILoclFileProvider FileSystem { get; set; }
public static void SetUp(ILoclFileProvider fs)
{
FileSystem = fs;
}
}
这是我的Droid项目代码 -
public class LocalFileProvider_Droid : ILoclFileProvider
{
public byte[] GetFileBytes(string filePath)
{
return File.ReadAllBytes(filePath);
}
}
在我的pcl项目中,我称之为 -
var bytes = FileUtility.FileSystem.GetFileBytes(filePath);
我收到一个错误 -
你调用的对象是空的。
我的代码有什么问题?
答案
我认为你正在调用DependencyService错误。试试这个:
var bytes = DependencyService.Get<ILoclFileProvider>().GetFileBytes(filePath);
还要确保通过android项目中命名空间上方的正确属性注册它。
[assembly: Xamarin.Forms.Dependency (typeof (LocalFileProvider_Droid))]
此行确保依赖项在Xamarin运行时中注册。有关DependencyService的更多信息,请查看这些新的Microsoft docs pages。
以上是关于使用Xamarin Filepicker插件上传文件的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms / Xamarin.Android的任何插件用于选择保存文件的目录?
如何将通过 Filepicker 发出的文件上传请求转换为使用 PHP 中的简单 HTML 文件控件发出的类似请求?