【问题标题】:How to pick file for upload server in flutter web?如何在flutter web中选择上传服务器的文件?
【发布时间】:2020-02-23 12:03:59
【问题描述】:

我想从电脑中选择一个文件上传服务器,但我不知道怎么做?

【问题讨论】:

    标签: flutter flutter-web dio


    【解决方案1】:

    我已经写了一个详细的答案here关于访问文件和读取它的内容。这对你来说可能是一个好的开始。

    总之

    1. 像这样从dart:html 包创建FileUploadInputElementFileUploadInputElement element = FileUploadInputElement()..id = "file_input";
    2. 使用dart:uiplatformViewRegistry.registerViewFactory 方法注册您的元素。
    ui.platformViewRegistry.registerViewFactory("add_input", (int viewId) {
          return element;
        });
    
    1. 使用HTMLElementView 小部件将此元素附加到您的网络应用布局中。

    HtmlElementView(viewType: 'add_input')

    1. 使用FileReader 读取通过FileUploadInputElement.files 提供的文件,如下所示。

    fileReader.readAsArrayBuffer(element.files[0]);

    1. 如有必要,处理 onLoadonError 事件。

    2. 点击上传按钮后,处理FileUploadInputElement.files数组以访问文件并将其上传到服务器。

    【讨论】:

    • 如何将上传的文件与http请求关联起来?
    • 你可以使用http包中的http.post
    • 因为 FileUploadInputElement.files 对象和 http 的 post 文件不是同一个对象,所以我不能把 FileUploadInputElement.files 放到 http 的 post 文件参数中。我该怎么办?
    • 您可以发布字节数组并在服务器中对其进行解码。检查FileReader 以获取更多选项,例如以文本形式阅读。但是要发送的数据的格式是您的选择,并且您必须研究如何去做。
    • 嗯,我知道该怎么做了,谢谢!
    猜你喜欢
    • 2021-07-28
    • 2021-11-11
    • 2022-06-22
    • 2022-12-21
    • 2020-12-27
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多