我想将图片作为多部分文件发送到服务器。
首先我尝试使用http.post:
var response = await http.post(
Uri.parse('url.php'),
headers:{ "Content-Type":"multipart/form-data" } ,
body: {
"fichier": base64img
}
);
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
错误状态:无法设置内容类型为“multipart/form-data”的请求的正文字段。
查看本主题的答案,我尝试使用dio 包:
var dio = Dio();
var formData = FormData.fromMap({
'fichier': await MultipartFile.fromFile(filePath, filename: 'upload')
});
var response = await dio.post(
'url.php',
data: formData
);
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
错误:不支持的操作:仅在 dart:io 可用的情况下才支持 MultipartFile。
这里已经开放了一个问题。
最后,我尝试使用http 包中的MultipartRequest:
var url = Uri.parse('url.php');
var request = new http.MultipartRequest("POST", url);
request.files.add(
await http.MultipartFile.fromPath(
"fichier",
filePath
) …Run Code Online (Sandbox Code Playgroud) 我想上传一张图片,我正在使用http.Client()来发送请求,
static uploadImage(String id, File file) {
var httpClient = createHttpClient();
Map<String, String> headers = new Map<String, String>();
headers.putIfAbsent("Authorization", () => "---");
headers.putIfAbsent("Content-Type", () => "application/json");
var body=new List();
body.add(id.)
httpClient.post(URL_UPLOADIMAGE,headers: headers,body: ,encoding: )
}
Run Code Online (Sandbox Code Playgroud)
请求的正文和编码部分应该是什么?
我正在做一个api请求,上传带有
var request = new http.MultipartRequest("POST", uri);
var response = await request.send()
Run Code Online (Sandbox Code Playgroud)
用飞镖飞镖。然后,我可以检查响应代码,例如
if (response.statusCode == 200) {
print('ok');
}
Run Code Online (Sandbox Code Playgroud)
与其他电话,我也可以得到响应主体
var result = response.body;
Run Code Online (Sandbox Code Playgroud)
但是,当使用request.send()时,我似乎找不到如何获取响应正文结果的方法。
非常感谢任何帮助或投入,谢谢!
我想在 Flutter 中使用 Dio 和 multi_image_picker 插件上传多张图片。
List<Asset>这就是问题所在,因为我无法从 转换List<Asset>为List<File>所以如果您有任何解决方案可以帮助我。
尝试使用:
multi_image_picker: ^4.6.1
dio: ^3.0.4
谢谢
博纳 SR。
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:merchantside/helper/colorhelper.dart';
import 'package:merchantside/merchantside/login.dart';
import 'dart:async';
import 'package:multi_image_picker/multi_image_picker.dart';
class ListImages extends StatefulWidget {
String errorMessage = "";
@override
_ListImagesState createState() => new _ListImagesState();
}
class _ListImagesState extends State<ListImages> {
List<Asset> images = List<Asset>();
List<File> listImages = [];
@override
void initState() {
super.initState();
}
Widget buildGridView() {
return GridView.count(
crossAxisCount: 3, …Run Code Online (Sandbox Code Playgroud) 我正在使用这个包从图库中获取多个图像,它返回一个资源列表,现在我想将其发送到服务器,我使用 FormDate 但需要图像路径。
还有其他方法可以将资产图像发送到服务器吗?
如何转换List<Asset>为List<File>.
如何从Asset中获取图像路径
或任何其他方法来完成此任务(从存储中选择多个图像并将它们发送到服务器)。
List<Asset> images = List<Asset>();
FormData imageFormData = FormData.fromMap({
"files": images.map((image) async {
return await MultipartFile.fromFile('assets/${image.name}', filename: image.name);
}).toList(),
});
Run Code Online (Sandbox Code Playgroud)