使用dio获取500作为响应代码上传文件时出现问题

时间:2020-09-17 07:24:21

标签: flutter dart

这是我的文件选择器功能

GestureDetector(
                          onTap: () async {
                            FilePickerResult result = await FilePicker.platform
                                .pickFiles(type: FileType.any);

                            if (result != null) {
                              File file = File(result.files.first.path);
                              print(file.path);
                              setState(() {
                              uploadFile=file;
                            });
                            }
                            
                            if (uploadFile != null) {
                              print(uploadFile.path);
                              _scaffoldKey.currentState.showSnackBar(SnackBar(
                                content: Text('File Uploaded Successfully!'),
                              ));
                            }
                          },

这是我的文件上传代码

 onPressed: () async {
                            if (uploadFile != null) {
                              setState(() {
                                _loading = !_loading;
                              });
                              String fileName = uploadFile.path.split('/').last;
                              print(fileName);
                              print(uploadFile.path);
                              
                                Dio dio = new Dio();
                                var url =
                                    '$api';
                                if (uploadFile.path != null) {
                                  String token =
                                      await storage.read(key: 'auth-token');
                                      print('ok1');
                                  FormData formData = FormData.fromMap({
                                    'inputFile': await MultipartFile.fromFile(
                                      uploadFile.path,
                                      filename: fileName,
                                      contentType:
                                          new MediaType('image', 'jpg'),
                                    ),
                                    
                                  });
                                  print('ok2');
                                  Response response = await dio.patch(url,
                                      data: formData,
                                      options: Options(
                                        contentType: "application/json",
                                          headers: {'auth-token': token}));
                                  if (response.statusCode == 201) {
                                    
                                Navigator.pushReplacement(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) =>
                                            AssigmentSubmitted()));
                              }
                            }

我收到[ERROR:flutter / lib / ui / ui_dart_state.cc(166)]未处理的异常:DioError [DioErrorType.RESPONSE]:每当我尝试使用此方法时,Http状态错误[500]就是错误。

之前我使用的是文件选择器的最新版本,然后运行良好,但是几天前插件已更新,此后它停止工作,尽管在此代码中,我更新了插件参数不起作用。

0 个答案:

没有答案