我只想了解如何将图像从 flutter 应用程序(.jpg 或 .png 格式)上传到 Django 服务器,以便对图像进行分类并返回响应,以及如何在flutter 应用程序中的用户发出获取请求(我只想要指南)。
我还没有尝试,因为我不知道从哪里开始。
使用
image_picker
包允许用户从设备的图库或相机中选择图像。
导入http包并从所选图像文件创建一个MultipartFile对象。
import 'package:http/http.dart' as http;
Future<http.MultipartRequest> createMultipartRequest(String url, File image) async {
final request = http.MultipartRequest(
'POST',
Uri.parse(url),
);
request.files.add(http.MultipartFile.fromPath('image', image.path));
return request;
}
使用 http 包将多部分请求发送到 Django 服务器的端点。 处理服务器的响应(例如图像分类结果)并将其显示在 Flutter 应用程序中。
Future<String?> uploadImage(String url, File image) async {
final request = await createMultipartRequest(url, image);
final streamedResponse = await request.send();
final response = await http.Response.fromStream(streamedResponse);
if (response.statusCode == 200) {
final responseData = jsonDecode(response.body); // Parse response if using JSON
return responseData['classification_result']; // Example assuming JSON response
} else {
print('Error: ${response.reasonPhrase}');
return null;
}
}
// Usage
void onUploadButtonPressed() async {
final imageFile = await pickImage();
if (imageFile != null) {
final result = await uploadImage('http://your-server-address/upload', imageFile);
if (result != null) {
// Display classification result (e.g., in a Text widget)
} else {
// Handle upload error
}
}
}