반응형
펄럭이는 JSON을 사용하여 포스트를 통해 이미지를 보내는 방법은 무엇입니까?
갤러리에서 이미지를 캡처하거나 선택하는 기능을 하는 플러터 앱을 만들고 있지만 클라이언트 측에서 이미지를 서버에 게시하는 방법에 어려움을 겪고 있습니다.
제가 수집한 바로는 이미지 파일을 바이트로 변환하여 BASE64로 전송하면 JSON을 통해 로컬 이미지를 전송할 수 있습니다.
import 'dart:convert';
import 'package:crypto/crypto.dart';
Future<Map> _avatarSubmit() async {
String url = api + '/api/account';
http.Response response = await http.post(Uri.encodeFull(url), headers: {
"Accept": "application/json",
"Cookie": "MYCOOKIE=" + sessionCookie2 + "; MYTOKENS=" + sessionCookie3,
"Content-type": "multipart/form-data",
}, body: {
"image": "",
});
Map content = JSON.decode(response.body);
return content;
}
제 질문은 장치의 이미지 파일을 바이트로 변환하는 방법입니다. 그러면 플러그인을 사용하여 BASE64로 변환할 수 있습니까?
잘 부탁드립니다.
플러그인이 이미지의 filePath를 제공하므로 파일 클래스 from dart:io를 사용하여 이미지를 로드하고 BASE64를 dart:convert에서 BASE64 문자열로 변환할 수 있습니다.
다음은 이 작업을 수행하는 방법입니다:
import 'dart:io';
import 'dart:convert';
File imageFile = new File(imageFilePath);
List<int> imageBytes = imageFile.readAsBytesSync();
String base64Image = BASE64.encode(imageBytes);
반응형
'개발하자' 카테고리의 다른 글
디스크에서 파일이 변경될 때 주피터 노트북을 자동으로 다시 로드하는 중 (0) | 2023.02.04 |
---|---|
Kubernetes에서 기본 네임스페이스를 설정할 수 있습니까? (0) | 2023.02.04 |
로컬 HTML 페이지에서 Jupyter 노트북에 연결하는 방법 (0) | 2023.02.03 |
VS 코드 - Jupyter 노트북이 기본 커널을 자동으로 선택하지 않습니다 (0) | 2023.02.02 |
M1 Apple Silicon에서 Android 스튜디오 Arctic Fox(2020.3.1)를 업데이트한 후 플러터 닥터가 포함된 번들 Java 버전을 찾을 수 없습니다 (0) | 2023.02.01 |