Flutter:我正在使用 post api 将文件上传到数据库。但它给了我一个错误

Posted

技术标签:

【中文标题】Flutter:我正在使用 post api 将文件上传到数据库。但它给了我一个错误【英文标题】:Flutter: I am uploading a file to database using post api. But it gives me a bug 【发布时间】:2022-01-14 20:32:53 【问题描述】:

我正在使用文件选择器来选择文件。文件可以是 png jpg 或 pdf。

                          FilePickerResult? result =
                          await FilePicker.platform.pickFiles(
                        type: FileType.custom,
                        allowMultiple: true,
                        allowedExtensions: ['jpg', 'png', 'pdf'],
                        allowCompression: true,
                      );
                      setState(() 
                        if (result!.files.length != 0) 
                          _con!.thumbnail = result.files;
                        
                      );

以下是使用Dio库使用post api将其上传到数据库的代码

  Future uploadFile(BuildContext context) async 
setState(() 
  isFormLoading = true;
);
var R;

Dio D = Dio();
D.options.headers = 
  'Content-type': 'multipart/form-data',
  // 'Content-type': 'application/json',
  'Accept': 'application/json',
;

FormData formData = FormData.fromMap(
  "image": DD.MultipartFile.fromFile(thumbnail.elementAt(0).path!),
);

R = await D.post(BASE_URL + "api/v2/upload/21", data: formData);

dynamic Response = R.data;

print('Response is >>>>>>');
print(R);

// BotToast.showText(text: Response["success"].toString());

setState(() 
  isFormLoading = false;
);

【问题讨论】:

什么是错误?你可以在这里发帖吗? 没有错误我们帮不了你 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:

修改上传文件文件的扩展名(jpg、png、pdf)

var formData = FormData.fromMap(

      "file":

          await MultipartFile.fromFile(path, filename: 'upload.jpg'),
      
    );
    Response response = await dio.post(
          Constant().urlBase + Constant().confirm_package_reception,
          data: formData);`enter code here`

【讨论】:

以上是关于Flutter:我正在使用 post api 将文件上传到数据库。但它给了我一个错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 post 请求将图片发送到服务器 api [FLUTTER]

包含在 Flutter 中使用 Dio 的 POST API 的项目列表的参数

Flutter Dio 无法发出 POST 请求 [关闭]

Http POST 在 Postman 中有效,但在 Flutter 中无效

Flutter + Chopper POST API 在网络中不起作用

如何在 Flutter 中获取返回的 POST API