使用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 文件控件发出的类似请求?

Uniapp 文件选择插件 Ba-FilePicker

Uniapp 文件选择插件 Ba-FilePicker

我可以使用从 FilePicker 导入的文件作为 MediaPlayer 源吗

如何在没有 FilePicker 的情况下在固定位置保存和加载 InkCanvas gif 文件